10

ラテン文字とキリル文字の両方を含む UTF-8 でエンコードされた .csv ファイルがあります。

;F1;F2;abcdefg3;F200
;ABSOLUTE;NOMINAL;NOMINAL;NOMINAL
o1;1;USA;Новосибирск;1223

IronPython 2.7.1 で次のスクリプトを実行しようとしています。

import codecs

f = codecs.open(r"file.csv", "rb", "utf-8")
f.next()

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()

このような奇妙な動作の原因を知っている人はいますか?

4

2 に答える 2

2

next()コーデックの処理方法にバグがある可能性があるようです。添付ファイルを複製するための問題を開いていただけますか?

于 2012-04-12T15:14:45.287 に答える
0

「rb」パラメータに問題がある可能性があります。「r」を使用してみてください

f = codecs.open(r"file.csv", "r", "utf-8")
于 2012-04-12T13:10:03.653 に答える