惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Vulnerabilities – Threatpost
Cloudbric
Cloudbric
G
GRAHAM CLULEY
S
Securelist
Schneier on Security
Schneier on Security
Help Net Security
Help Net Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Project Zero
Project Zero
Spread Privacy
Spread Privacy
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
T
Tailwind CSS Blog
博客园_首页
有赞技术团队
有赞技术团队
Simon Willison's Weblog
Simon Willison's Weblog
Stack Overflow Blog
Stack Overflow Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Latest news
Latest news
T
Tor Project blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Attack and Defense Labs
Attack and Defense Labs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
O
OpenAI News
J
Java Code Geeks
T
Tenable Blog
K
Kaspersky official blog
AWS News Blog
AWS News Blog
S
Security @ Cisco Blogs
The GitHub Blog
The GitHub Blog
T
Threatpost
月光博客
月光博客
H
Heimdal Security Blog
Security Latest
Security Latest
The Hacker News
The Hacker News
Y
Y Combinator Blog
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
C
Cisco Blogs
美团技术团队
Microsoft Security Blog
Microsoft Security Blog
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
C
CERT Recently Published Vulnerability Notes
D
Docker
Google Online Security Blog
Google Online Security Blog
D
DataBreaches.Net
V
Visual Studio Blog
H
Help Net Security

博客园 - guoadou

新的开始 《项目管理艺术》读书笔记 —— 决定做什么的常见不良决策一览 《项目管理艺术》读书笔记 —— 项目规划的三种观点 《IF》 - Joseph Rudyard Kipling 论信息系统的架构设计 【转】系统架构设计师考试大纲(2009) nginx error_page 404 用 php header 无法跳转 The Elements of Programming Style 导出MySQL数据库结构的PHP脚本 轻松面试 搞定技术奇才 Cyworld Values & Principles 通过创建SCHEMABINDING VIEW提高JOIN的速度 长的很像Cyworld的QQ [北京][赛我网]HTML高级工程师 - guoadou - 博客园 [招聘] 韩国企业招聘Java .NET 开发人员 document.body.scrollTop总是零的原因 unicode_to_utf8 in PHP [新闻]Cyworld.com.cn开始公测 hex2bin in PHP
utf8_to_unicode in PHP
guoadou · 2005-12-28 · via 博客园 - guoadou

想使用8:UCS2格式编码下行短信的时候,需要把UTF8转换成Unicode的十六进制编码,但是PHP没有内置Unicode的支持,怎么办呢?

/**
 * 从UTF8转换成unicode beta1.0
 * @param mixed $string要转换的字符串,
 * @return unicode的十六进制编码
*/
function utf8_to_unicode_hex($string){
    
$length = strlen($string);
    
$outstring = "";
    
for ( $i = 0$i < $length$i++ )  {
        
$asc_value = ord($string[$i]);
        
if($asc_value > 127) {
            
if($asc_value >= 192 && $asc_value <= 223){
                
$str_dec = (ord($string[$i]) & 0x3f<< 6;
                
$i++;
                
$str_dec += ord($string[$i]) & 0x3f;
                
$str_hex = dechex($str_dec);
                
$outstring .= str_pad($str_hex,4,"0",STR_PAD_LEFT);
            }
elseif($asc_value >= 224 && $asc_value <= 239){
                
$str_dec = (ord($string[$i]) & 0x1f<< 12;
                
$i++;
                
$str_dec += (ord($string[$i]) & 0x3f<< 6;
                
$i++;
                
$str_dec += ord($string[$i]) & 0x3f;
                
$outstring .=dechex($str_dec);
            }
elseif($asc_value >= 240 && $asc_value <= 247){
                
$str_dec = (ord($string[$i]) & 0x0f<< 18;
                
$i++;
                
$str_dec += (ord($string[$i]) & 0x3f<< 12;
                
$i++;
                
$str_dec += (ord($string[$i]) & 0x3f<< 6;
                
$i++;
                
$str_dec += ord($string[$i]) & 0x3f;
                
$outstring .= dechex($str_dec);
            }
else{
                
$str_hex = dechex(ord($string[$i]));
                
$outstring .= str_pad($str_hex,4,"0",STR_PAD_LEFT);
            }
        }
else{
            
$str_hex = dechex(ord($string[$i]));
            
$outstring .= str_pad($str_hex,4,"0",STR_PAD_LEFT);
        }
    }
    
return $outstring;
}

posted on 2005-12-28 15:55  guoadou  阅读(967)  评论()    收藏  举报