Maison > développement back-end > tutoriel php > php 怎么把 xE6x88x91 转换成中文

php 怎么把 xE6x88x91 转换成中文

WBOY
Libérer: 2016-06-23 13:12:50
original
1906 Les gens l'ont consulté

刚学php不久,今天突发奇想,想把一个汉字转换成 16 进制的形式,然后再转换成汉字,于是就写了下面的代码

<?php$s = strtoupper(bin2hex('我'));// E68891echo $s;$s2 = null;for($i = 0; $i < strlen($s); $i+=2){    $s2.= '\x'.substr($s, $i, 2);}// \xE6\x88\x91echo $s2;// \xE6\x88\x91echo "$s2"; // 我echo "\xE6\x88\x91";                              
Copier après la connexion

请问各位大神为什么 echo "$s2" 不会自动转成 '我' 字,而直接写 "\xE6\x88\x91" 就可以呢?
如果我得到了一个字符串 '\xE6\x88\x91' , 我要怎么把它转换成中文呢?


回复讨论(解决方案)

echo hex2bin(str_replace('\\x', '', '\xE6\x88\x91'));
Copier après la connexion
Copier après la connexion


显然 \x 是蛇足

echo hex2bin(str_replace('\\x', '', '\xE6\x88\x91'));
Copier après la connexion
Copier après la connexion


显然 \x 是蛇足


非常感谢,以后如果遇到这种情况只要把 \x 去掉,然后使用 hex2bin 函数就可以了啊。

主要是我看到,手册上写的在双引号里面字符可以写成 \x[0-9A-Fa-f]{1,2} 的形式,所以我就想,如果一个字符串是

$s = '\xE6\x88\x91';

那么这样写 echo "$s"; 他就自动转换了,看来是不行啊。

再次感谢!

$s = '\xE6\x88\x91';
$f = create_function('', "return \"$s\";");
echo $f();

eval("echo \"$s\";");

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal