<?php
$str = "Text";
$str = mb_convert_encoding($str, "UTF-8", mb_detect_encoding($str));
echo mb_detect_encoding($str);
?>
このコードは、出力として「ASCII」を提供します。なんで?
<?php
$str = "Text";
$str = mb_convert_encoding($str, "UTF-8", mb_detect_encoding($str));
echo mb_detect_encoding($str);
?>
このコードは、出力として「ASCII」を提供します。なんで?
文字列には 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
このステップなしであることがわかります。
私の推測では、ASCII は UTF-8 のサブセットであるため、UTF-8 に「変換」された純粋な ASCII は ASCII と区別がつかないということです。