Python - DOS中的ShiftJIS错误

时间:2014-06-30 12:59:42

标签: python shift-jis

我需要在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。有人知道什么不起作用吗?

1 个答案:

答案 0 :(得分:1)

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

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

例如:

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

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