gpt4 book ai didi

php - 是什么将我的 UTF-8 字符串更改为 ASCII?

转载 作者:可可西里 更新时间:2023-11-01 00:42:05 25 4
gpt4 key购买 nike

我有以下代码:

$string = $this->getTextFromHTML($html);

echo mb_detect_encoding($string, 'ASCII,UTF-8,ISO-8859-1');

$stringArray = mb_split('\W+', $string);
$cleaned = array();
foreach($stringArray as $v) {
$string = trim($v);
if(!empty($string))
array_push($cleaned, $string);
}

echo mb_detect_encoding($stringArray[752], 'ASCII,UTF-8,ISO-8859-1');

以上返回:

// UTF-8
// ASCII

我的代码的哪一部分正在将我的字符串转换为 ASCII?还是我检测到的编码不正确?

最佳答案

字符串没有实际的关联编码,它们只是字节数组。 mb_detect_encoding 不会告诉您字符串的编码方式,它只是尝试检测。这意味着它需要一些猜测(你的第二个参数)并告诉你第一个是有效的。

您的原始字符串可能包含一些非 ASCII 字符,因此 ASCII 不是它的有效编码,但 UTF-8 是。当您稍后测试原始字符串的子字符串时,该子字符串可能仅包含在 ASCII 中有效的字符,并且由于 ASCII 是第一个被测试的编码,因此这是猜测的结果。任何 ASCII 字符串也是有效的 UTF-8,因此没有实际问题或发生“转换”。

关于php - 是什么将我的 UTF-8 字符串更改为 ASCII?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32891110/

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