PHP将unicode转换为十六进制

时间:2012-07-31 14:28:28

标签: php unicode hex

应用希望我将字符串插入text encoded using hex values in proper coding.,编码为Unicode_No_Compression

例如,对于Sześć siedem,正确的HEX字符串为0053007A0065015B0107002000730069006500640065006D
Źdźbło = 01790064017A00620142006F
String with no special chars = 0053007400720069006E0067002000770069007400680020006E006F0020007300700065006300690061006C002000630068006100720073

我尝试使用MySQL HEX() / UNHEX()dechex() PHP,但无法弄清楚如何进行此转换。有什么想法吗?

2 个答案:

答案 0 :(得分:9)

我猜你正在查看UCS-2编码的十六进制版本。因此:

php > echo strtoupper(bin2hex(iconv('UTF-8', 'UCS-2', 'Źdźbło')));
01790064017A00620142006F

答案 1 :(得分:0)

试试这个:

$out = implode("",array_map(function($x) {return sprintf("%04X",ord($x));},str_split($in)));

一个班轮;)