Windows-1252文字エンコーディングに関するウィキペディアの記事を読みました。バイト値が 128 未満の文字の場合、ASCII/UTF-8 と同じにする必要があります。
意味あり:
php -r "var_export(mb_detect_encoding(\"\x92\", 'windows-1252', true));"
'Windows-1252'
左巻きのアポストロフィは正しく検出されます。
php -r "var_export(mb_detect_encoding(\"a\", 'windows-1252', true));"
false
は?文字「a」は Windows-1252 ではありませんか?
これを実行している端末は UTF-8 に設定されています。したがって、文字「a」の ASCII と同じバイト シーケンスである必要があります。変数を最小限に抑えるために、正しい Windows-1252 を指定すると、バイト シーケンス:
php -r "var_export(mb_detect_encoding(\"\x61\", 'windows-1252', true));"
false
これらの場合、「strict」パラメーター (かなり役に立たないドキュメントがあります) を変更しても何も起こりません。