mb_detect_encoding() 関数を使用して、文字列に latin1 (ISO-8859-1) 以外の文字が含まれているかどうかを確認しています。
日本語は latin1 の一部ではないため、テスト文字列内のテキストとして使用していますが、文字列が関数に渡されると、ISO-8859-1 に対して OK を返すようです。コード例:
$str = "これは日本語のテキストです。読めますか";
$res = mb_detect_encoding($str,"ISO-8859-1",true);
print $res;
「ISO-8859-1」の代わりに「ASCII」を使用してみましたが、これは正しく false を返します。矛盾を説明できる人はいますか?