用php实现中文汉字与16进制编码转换的几个例子
2021-07-25
本文介绍了php汉字和16进制码转换的方法,几个php汉字码转换的例子,有需要的朋友可以参考。
使用php实现汉字与十六进制的代码转换。
示例 1,
编码转换为汉字
function hexdecode($s) {
return preg_replace('/(\w{2})/e',"chr(hexdec('\\1'))",$s);
}
echo hexdecode(hexencode("北京欢迎您!"));
?>
方法二,
echo rawurlencode("北京欢迎您").'
';
返回一个字符串。此字符串中除 -_ 之外的所有非字母数字字符。将替换为百分号 (%) 后跟两个十六进制数字。
用于解码:
方法三,
GBK 版本:
一个gbk编码的汉字由两个字符组成,
如果ord()函数获取到的字符值大于127php汉字转unicode编码,可以判断当前字符是汉字的前半部分,需要获取汉字的后半部分。
当然,这种判断方法要结合具体的开发环境。如果有单个字符的值大于127,这种判断方法显然是错误的。
php汉字转十进制的原理是通过for循环的方法获取一个汉字的两个字符php汉字转unicode编码,然后使用ord()函数将每个字符转为十进制。
以上为:无【】至【】迷【】爱【】哥哥【】
php实现汉字转十六进制的原理:
首先使用ord()函数提取每个汉字的十进制。具体请参考【php函数章节掌握ord()和chr()函数的应用】,然后使用()函数将每个汉字转成十六进制。
代码:
127){
$result[] = ord($string[$i]).' '.ord($string[++$i]);
}
}
var_dump($result);
echo '
';
//十六进制
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = dechex($dec[0])." ".dechex($dec[1]);
}
var_dump($strings);
utf-8 版本:
$string = "北京欢迎您!";
$length = strlen($string);
echo $string;
$result = array();
//十进制
for($i=0;$i<$length;$i++){
if(ord($string[$i])>127){
$result[] = ord($string[$i]).' '.ord($string[++$i]).' '.ord($string[++$i]);
}
}
var_dump($result);
echo '
';
//十六进制
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = dechex($dec[0])." ".dechex($dec[1])." ".dechex($dec[2]);
}
var_dump($strings);