php 怎么将utf-8格式的汉字转换成16进制?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 怎么将utf-8格式的汉字转换成16进制?相关的知识,希望对你有一定的参考价值。

//字符串转换成16进制
function str2hex($str)
$hex = \'\';
for($i=0,$length=mb_strlen($str); $i<$length; $i++)
$hex .= dechex(ord($str$i));

return $hex;

//16进制转换成字符串
function hex2str($hex)
$str = \'\';
$arr = str_split($hex, 2);
foreach($arr as $bit)
$str .= chr(hexdec($bit));

return $str;

function test()
//utf8字符测试
$str = \'中文\';
echo mb_strlen($str);
echo \'<br>\';

$hex = str2hex($str);
echo $hex;
echo \'<br>\';

$dec = hex2str($hex);
echo $dec;
echo "<br>";
echo "<hr>";
//gbk测试
$gbkstr = mb_convert_encoding($str,\'GBK\',\'UTF-8\');
echo mb_strlen($gbkstr);
echo \'<br>\';

$hex = str2hex($gbkstr);
echo $hex;
echo \'<br>\';

$dec = mb_convert_encoding(hex2str($hex), \'UTF-8\', \'GBK\');
echo $dec;
echo "<br>";

参考技术A //字符串转换成16进制
function str2hex($str)
$hex = '';
for($i=0,$length=mb_strlen($str); $i<$length; $i++)
$hex .= dechex(ord($str$i));

return $hex;

//16进制转换成字符串
function hex2str($hex)
$str = '';
$arr = str_split($hex, 2);
foreach($arr as $bit)
$str .= chr(hexdec($bit));

return $str;

function test()
//utf8字符测试
$str = '中文';
echo mb_strlen($str);
echo '';

$hex = str2hex($str);
echo $hex;
echo '';

$dec = hex2str($hex);
echo $dec;
echo "";
echo "<hr>";
//gbk测试
$gbkstr = mb_convert_encoding($str,'GBK','UTF-8');
echo mb_strlen($gbkstr);
echo '';

$hex = str2hex($gbkstr);
echo $hex;
echo '';

$dec = mb_convert_encoding(hex2str($hex), 'UTF-8', 'GBK');
echo $dec;
echo "";

我用c#下载了新浪的评论里的评论,应该是json格式数据,汉字是乱码,我应该怎么显示成正常的?

使用的语句是request = (HttpWebRequest)HttpWebRequest.Create(purl1);
response = (HttpWebResponse)request.GetResponse();
sReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
purl1是评论的入口地址。

汉字乱码您需要将其乱码发出来.瞧瞧.看是否是特殊编码.
如果不是.尝试3种常用汉字编码.GBK系列.UTF8(您试过了)还有就是Unicode
如果这几个都不行...那肯定就是特殊编码了....UTF32基本都不敢想像哪个那么大的门户敢用..
参考技术A 是不是你下载的编码不对啊,
sReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
后面的UTF8改成GB2312试试

以上是关于php 怎么将utf-8格式的汉字转换成16进制?的主要内容,如果未能解决你的问题,请参考以下文章

c语言怎么字符串和16进制转码 汉字转16进制如“我”转换成 “0xe68891”; 16进制转汉字“0xe68891”转 我

汉字怎样转换十六进制php

php数组转换成json格式后汉字怎么就被解析成字母了啊

java 16进制byte数组 转化成UTF-8格式字符串

从16进制转换成汉字

PHP里,16进制格式字符串,转换成具体值的方法