我无法在PHP上更改字符串编码

时间:2013-03-14 16:48:42

标签: php

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

此代码以“ASCII”作为输出。 为什么呢?

2 个答案:

答案 0 :(得分:2)

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

添加一个:

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

现在,您将UTF-8作为输出,如this demo中所示。

但是,您无需运行转化以获取UTF-8作为输出,mb_detect_encoding()在没有此步骤的情况下选择字符串UTF-8

答案 1 :(得分:0)

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