1
<?php
   $str = "Text";
   $str = mb_convert_encoding($str, "UTF-8", mb_detect_encoding($str));
   echo mb_detect_encoding($str);
?>

这段代码给了我“ASCII”作为输出。为什么?

4

2 回答 2

2

您的字符串没有 UTF-8 特定字符,只有 ASCII。

添加一个:

$str = "Text È";
$str = mb_convert_encoding($str, "UTF-8", mb_detect_encoding($str));
echo mb_detect_encoding($str);

UTF-8现在将获得输出,如本演示中所示。

但是,您不需要运行转换来获取UTF-8输出,mb_detect_encoding()可以发现字符串UTF-8没有这一步。

于 2013-03-14T16:50:49.687 回答
0

我的假设是,因为 ASCII 是 UTF-8 的子集,所以纯 ASCII “转换”为 UTF-8 将与 ASCII 无法区分。

于 2013-03-14T16:51:30.510 回答