PHP十六进制字符串错误请帮我修复它[重复]

egdjgwm8  于 2022-12-28  发布在  PHP
关注(0)|答案(1)|浏览(77)
    • 此问题在此处已有答案**:

Problem with php bin2hex function(1个答案)
6小时前关闭.

echo bin2hex('t«ikh«ngyªu'); //74c2ab696b68c2ab6e6779c2aa75 wrong result
//74AB696B68AB6E6779AA75 correct result

请帮我修理一下
错误十六进制字符串

pkln4tw6

pkln4tw61#

看看。“74”是“t”的ASCII码点。«在ASCII拉丁语-1中有一个“ab”码点。显然,您使用的是UTF,并且«具有两字节的“c2 ab”代码点。整个字符串的长度为11个字符。十六进制字符串结果的长度可能为22(你想要的结果),而UTF不是这种情况(除非你低于7 f码位)。如果你需要你的输入字符串在一个非UTF编码,你应该首先转换为@Uwe在注解中提到的问题:

echo bin2hex(mb_convert_encoding('t«ikh«ngyªu', 'ISO-8859-1', 'UTF-8'));

但是我建议坚持使用UTF。

相关问题