网页编程基础 ASPPHP XML Ajax JavaScript VbScript ColdFusion JSP CGI 应用服务器 网页编程技巧与经验
返回首页
当前位置: 冰山软件站 > 网页编程 > PHP >

php 将字符(包括汉字) 转换成16进制的方法

时间:2011-03-28来源: 作者: 点击:

php 将字符(包括汉字) 转换成16进制,原由是:apache access log 里面默认中文是不能显示中文的,显示的16进制字符串。

注意:

GBK是双字节,UTF-8是三字节,所以你会看到同样一个中文字,用16进制表示时不一样。

中文是:特价机票
GBK: \xcc\xd8\xbc\xdb\xbb\xfa\xc6\xb1
UTF-8: \xe7\x89\xb9\xe4\xbb\xb7\xe6\x9c\xba\xe7\xa5\xa8

如果想想还原直接使用php的stripcslashes函数即可,看下面代码:

$str = '\xe7\x89\xb9\xe4\xbb\xb7\xe6\x9c\xba\xe7\xa5\xa8'; 
echo str_replace(array("\t","\n","\r"),'',stripcslashes($str));

如果想用PHP模拟如果生成的16进制字符串看下面代码:

view sourceprint?01 $str = '特价机票'; 
$str = iconv("UTF-8", "GBK", $str); 
echo urlstr($str); 
function urlstr($str) 

     $url=""; 
     $m1=""; 
     for($i=0;$i<=strlen($str);$i++){ 
     $m1=base_convert(ord(substr($str,$i,1)),10,16);
     if ($m1!="0") 
     $url=$url."\x".$m1; 
     } 
     return $url; 
 }

代码没有参考了网友写的函数,小调了一下。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐内容