2017-07-29 16 views
0

を使用。エンコード「UCS-2リトルエンディアン」ファイル「UTF8」と私のpythonを使用して<em>UTF8</em>に<em>UCS-2リトルエンディアン</em>ファイルからエンコードしようとしていると私は奇妙なエラーを取得していますPythonのエラー

私が使用しているコード:

file=open("C:/AAS01.txt", 'r', encoding='utf8') 
lines = file.readlines() 
file.close() 

そして、私は次のエラーを取得しています:

Traceback (most recent call last): 
    File "C:/Users/PycharmProjects/test.py", line 18, in <module> 
    main() 
    File "C:/Users/PycharmProjects/test.py", line 7, in main 
    lines = file.readlines() 
    File "C:\Python34\lib\codecs.py", line 319, in decode 
    (result, consumed) = self._buffer_decode(data, self.errors, final) 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte 

私はコーデックのコマンドを使用しようとしましたが、また、動作しませんでしたが... 私は何ができるでしょうか?

答えて

1

UCS-2を読もうとすると、なぜPythonにUTF-8を伝えているのですか?

>>> codecs.BOM_UTF16_LE 
b'\xff\xfe' 

UCS-2はまた、Unicodeがそれをoutgrewという単純な理由のため、廃止されました:0xffでは、最も可能性の高いリトルエンディアンバイト順マーカーの最初のバイトです。典型的な交換はUTF-16になります。 openセット入力エンコーディングにPython 3: reading UCS-2 (BE) file

1

encoding引数にリンクされ

詳細情報。 encoding='utf_16_le'を使用してください。

+0

は完璧に動作します、ありがとう! – Rob

関連する問題

 関連する問題