Home > Backend Development > PHP Tutorial > ascii码的汉字疑问。网上看到的一个代码,该怎么解决

ascii码的汉字疑问。网上看到的一个代码,该怎么解决

WBOY
Release: 2016-06-13 13:53:34
Original
926 people have browsed it

ascii码的汉字疑问。网上看到的一个代码

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php /**
*
* ASCII 转 十六进制 以及 十六进制 转 ASCII
* 非盈利组织或个人请放心转载,商业用途请征得作者同意
*
*/
//ASCII 转 十六进制
function asc2hex($str) {
return '\x'.substr(chunk_split(bin2hex($str), 2, '\x'),0,-2);
}
//十六进制 转 ASCII
function hex2asc($str) {
$str = join('',explode('\x',$str));
$len = strlen($str);
for ($i=0;$i<$len;$i+=2) $data.=chr(hexdec(substr($str,$i,2)));
return $data;
}
$asc = "哈哈";
$hex = asc2hex($asc);
$asc = hex2asc($hex);
echo "hex : ".$hex;
echo "<br>
";
echo "asc : ".$asc;
?>
Copy after login


保存采用utf8保存,

问题1不明白 哈哈 是utf8编码??为什么函数可以说是ascii转16进制。 结果是\xe5\x93\x88\xe5\x93\x88

我查过哈哈的ascii码的16进制表现形式是 54c8 54c8 ,明显不一样

搞不懂



------解决方案--------------------
这里用"ascii"显然不合适,"转16进制"这么说也不合适,
函数的作用其实是: 把字符串的编码用16进制的形式表示出来

所以你的疑问都有道理.

函数头上写"非盈利组织或个人请放心转载,商业用途请征得作者同意"也很搞笑,
因为这样简单的代码没有独创性, 别人不需要看也能写出一样的代码,
所以也当然不需要"征得作者同意"

探讨
PHP code
/**
*
* ASCII 转 十六进制 以及 十六进制 转 ASCII
* 非盈利组织或个人请放心转载,商业用途请征得作者同意
*
*/
//ASCII 转 十六进制
function asc2hex($str) {
return '\x'.substr(chunk_split(bin2hex($str), 2, '\x'),0,-2);
}
//十六进制 转 A……
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template