微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有以下代码

$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,因此没有发生实际问题或“转换”.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐