ラテン文字とキリル文字の両方の記号を含むUTF-8でエンコードされた.csvファイルがあります。IronPythonでコーデックを使用してUTF-8ファイルを読み取る
;F1;F2;abcdefg3;F200
;ABSOLUTE;NOMINAL;NOMINAL;NOMINAL
o1;1;USA;Новосибирск;1223
私はIronPythonの2.7.1で次のスクリプトを実行しようとしている:例外が発生した)(f.nextの実行中
import codecs
f = codecs.open(r"file.csv", "rb", "utf-8")
f.next()
:で
Traceback (most recent call last):
File "c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Python Tools for Visual Studio\1.1\visualstudio_py_repl.py", line 492, in run_file_as_main
code.Execute(self.exec_mod)
File "<string>", line 4, in <module>
File "C:\Program Files\IronPython 2.7.1\Lib\codecs.py", line 684, in next
return self.reader.next()
File "C:\Program Files\IronPython 2.7.1\Lib\codecs.py", line 615, in next
line = self.readline()
File "C:\Program Files\IronPython 2.7.1\Lib\codecs.py", line 530, in readline
data = self.read(readsize, firstline=True)
File "C:\Program Files\IronPython 2.7.1\Lib\codecs.py", line 477, in read
newchars, decodedbytes = self.decode(data, self.errors)
UnicodeEncodeError: ('unknown', '\x00', 0, 1, '')
CPython 2.7と同じ時間にスクリプトは正しく動作します。また、IronPythonの2.7.1次のスクリプトでは正常に動作します:
import codecs
f = codecs.open(r"file.csv", "rb", "utf-8")
f.readlines()
誰がこのような奇妙な動作を引き起こす可能性が何を知っていますか?
"b"を削除しようとしました。例外は消えましたが、キリル記号は間違ってデコードされました。また、ドキュメントによれば、StreamReaderは、ストリーム(読み込み(バイナリ)データ用に開いたファイルのようなオブジェクトでなければなりません)を受け取ります。 – usahara