PHP将unicode转换为十六进制


PHP convert unicode to 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,但不知道如何进行转换。有什么想法吗?

我猜您实际上是在看UCS-2编码的十六进制版本。因此:

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

试试这个:

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

一个衬垫;)