Pythonのchardetモジュールが、"testあ"という文字列(UTF-8)の文字コードを"Windows-1254"だと判定する
環境
- Python3.6.5
- chardet 3.0.4
- Windows10
背景
Pythonのchardetモジュールで、文字コードの判定結果を確認しています。
UTF-8の"あ"という文字列の判定結果は"UTF-8"でしたが、"testあ"という文字列の判定結果は"Windows-1254"でした。これはWindowsのトルコ語の文字コードです。
https://en.wikipedia.org/wiki/Windows-1254
In [163]: chardet.detect( "あ".encode("utf-8"))
Out[163]: {'encoding': 'utf-8', 'confidence': 0.505, 'language': ''}
In [164]: chardet.detect( "testあ".encode("utf-8"))
Out[164]:
{'encoding': 'Windows-1254',
'confidence': 0.5889255495043456,
'language': 'Turkish'}
In [165]: chardet.detect( "tあ".encode("utf-8"))
Out[165]: {'encoding': 'utf-8', 'confidence': 0.505, 'language': ''}
In [166]: chardet.detect( "stあ".encode("utf-8"))
Out[166]: {'encoding': 'utf-8', 'confidence': 0.505, 'language': ''}
In [167]: chardet.detect( "estあ".encode("utf-8"))
Out[167]:
{'encoding': 'Windows-1254',
'confidence': 0.5153098558163024,
'language': 'Turkish'}
質問
"testあ"というUTF-8の文字列は、なぜ"Windows-1254"と判断されたのでしょうか?
chardetが文字列を"UTF-8"と判断するには、どのような文字があればよいのでしょうか?
chardetのSupport Encodingsというページに、Windows-1254は載っていませんでした。何か理由はあるのでしょうか?
https://chardet.readthedocs.io/en/latest/supported-encodings.html
単純な興味として質問しました。特に困ってはいません。