gpt4 book ai didi

php - mb_convert_encoding 问题

转载 作者:可可西里 更新时间:2023-11-01 13:23:07 25 4
gpt4 key购买 nike

我对 PHP 函数 mb_detect_encoding 有一些疑问。我无法将其转换为 ISO-8859-1。有帮助吗?

代码:

$str = "åäö";
$encoding = mb_detect_encoding($str);
echo $encoding;

$encoding = mb_detect_encoding(mb_convert_encoding($str, "ISO-8859-1"));
echo $encoding;

输出:

UTF-8

UTF-8

已更新,解决方案:

我将 mb_detect_order 更新为 array('UTF-8', 'ISO-8859-1') 并且它起作用了。

最佳答案

您实际上并没有转换您的字符串。相反,对 mb_convert_encoding 的调用并未假定原始字符串为 UTF-8。调用之前的字符串是一个可能已经是 ISO-8859-1 的字节序列(并且会以不同的方式表示项目)。您可以看到这种情况,而不是调用 mb_detect_encoding,而是在字符串上使用 bin2hex 并在转换调用后查看字节序列。您会看到字节序列没有变化。

要使转换生效,您需要告诉它(在本例中)原始编码。使用:

mb_convert_encoding($str, 'ISO-8859-1','utf-8');

如果您在这之后检查字节序列,您会看到转换已经发生。

关于php - mb_convert_encoding 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12072431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com