You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP hex字符串错误修复求助:bin2hex输出结果不符问题

问题修复:PHP bin2hex 结果不符合预期

问题根源

你遇到的结果差异本质是字符串编码问题:

  • 输入字符串为UTF-8编码,其中«(U+00AB)和ª(U+00AA)这类字符在UTF-8中以双字节形式存储(分别是c2ab、c2aa)。
  • bin2hex会直接输出字符串每个字节的十六进制值,因此得到带c2前缀的结果。
  • 你预期的74AB696B68AB6E6779AA75,对应这些字符在**Latin-1(ISO-8859-1)**编码下的单字节值(ab、aa)。

修复方案

将UTF-8编码的字符串转换为Latin-1编码后,再调用bin2hex即可得到预期结果:

方案1:使用mb_convert_encoding

$str = 't«ikh«ngyªu';
$latin1_str = mb_convert_encoding($str, 'ISO-8859-1', 'UTF-8');
echo bin2hex($latin1_str); // 输出:74AB696B68AB6E6779AA75

方案2:使用iconv

$str = 't«ikh«ngyªu';
$latin1_str = iconv('UTF-8', 'ISO-8859-1', $str);
echo bin2hex($latin1_str); // 输出:74AB696B68AB6E6779AA75

注意事项

如果原始字符串本身就是Latin-1编码,直接调用bin2hex即可。但PHP环境通常默认字符串为UTF-8编码,因此需要显式执行编码转换。

内容的提问来源于stack exchange,提问作者Lưu Hậu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 14:45:56