0

我有需要在 Python 中编辑的 csv 文件,这些文件必须保留在 Shift-JIS 中。当通过将每个部分输入 Python 解释器来测试我的代码时,文件被很好地编辑并且它们保留在 Shift-JIS 中。我在 Python 解释器中运行以下行:

import sys, codecs
reload(sys)
sys.setdefaultencoding('shift_jis')

我将这些行放在脚本中并从 DOS 提示符下运行它们,当然我添加的 shift-JIS 字符会弄乱。如果我在 DOS 提示符下运行 chcp,它会告诉我我正在运行 chcp 932, shift-JIS。有人知道什么不起作用吗?

4

1 回答 1

1

如果有人需要知道,这是补救措施:

在这种情况下,当我需要 Shift-JIS 时,Python 正在使用 Unicode。对我有用的是指定使用 unicode 的行,然后在 Shift-JIS 中对它们进行编码,然后将它们写入文件。这每次都有效。

例如:

name = u"テスト "
newstring = name + other_string_data
newstring = newstring.encode('shift_jis')

然后字符串将被编码为 shift-JIS 并写入。这不是最优雅的方法,但我希望这对某人有所帮助,我花了大约 2 个小时才弄清楚。

于 2014-07-01T07:01:58.507 回答