"testあ"のUTF-8表現は、74 65 73 74 e3 81 82 (1バイトデータの表記は全部16進、以下同様, python3風に書くとb'\x74\x65\x73\x74\xe3\x81\x82')で、chardetが判定するのは「文字列」ではなく、このバイト列です。 ちなみにこのバイト列をUTF-8, Shift_JIS, EUC-JP, ISO-8859-1, Code Page 437, Windows-1254で解釈すると、以下のようになります。 UTF-8 testあ (まぁ、当たり前) Shift_JIS (不正) EUC-JP (不正) ISO-8859-1 testã (81 82 は制御コードにあたるので見えないが不正ではない) CP437 testπüé Win1254 testã‚ (81は未定義なので本来は不正、chardetは未定義にあたるバイトが現
![Pythonのchardetモジュールが、"testあ"という文字列(UTF-8)の文字コードを"Windows-1254"だと判定する](https://cdn-ak-scissors.b.st-hatena.com/image/square/f6bc393cd0b6bd2196935e603c5d031bd6ca6699/height=288;version=1;width=512/https%3A%2F%2Fcdn.sstatic.net%2FSites%2Fja%2FImg%2Fapple-touch-icon%402.png%3Fv%3D1cfb10b305ca)