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

 我来答
ffcz
2013-04-16 · TA获得超过1221个赞
知道小有建树答主
回答量:757
采纳率:71%
帮助的人:741万
展开全部
//字符串转换成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>";
}
随性亻
2015-05-19 · TA获得超过4180个赞
知道小有建树答主
回答量:4622
采纳率:84%
帮助的人:618万
展开全部
//字符串转换成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 "";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式