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 のみです。

次の場所に 1 つ追加します。

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

この demoUTF-8に見られるように、今すぐ出力として得られます。

UTF-8ただし、出力として取得するために変換を実行する必要はありません。mb_detect_encoding()文字列がUTF-8このステップなしであることがわかります。

于 2013-03-14T16:50:49.687 に答える
0

私の推測では、ASCII は UTF-8 のサブセットであるため、UTF-8 に「変換」された純粋な ASCII は ASCII と区別がつかないということです。

于 2013-03-14T16:51:30.510 に答える