環境

  • 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'}                                                                                                   

質問

  1. "testあ"というUTF-8の文字列は、なぜ"Windows-1254"と判断されたのでしょうか?

  2. chardetが文字列を"UTF-8"と判断するには、どのような文字があればよいのでしょうか?

  3. chardetのSupport Encodingsというページに、Windows-1254は載っていませんでした。何か理由はあるのでしょうか?
    https://chardet.readthedocs.io/en/latest/supported-encodings.html

単純な興味として質問しました。特に困ってはいません。