Python - ошибки ShiftJIS в DOS

У меня есть файлы csv, которые мне нужно отредактировать в Python, которые должны оставаться в Shift-JIS. Когда тестирую мой код, вводя каждый раздел в интерпретатор Python, файлы редактируются нормально и остаются в Shift-JIS. Я запускаю в интерпретаторе Python следующие строки:

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

Я помещаю эти строки в скрипт и запускаю их из командной строки DOS, и, конечно же, добавляемые мной символы shift-JIS испорчены. Если я запускаю chcp в командной строке DOS, он сообщает мне, что я запускаю chcp 932, shift-JIS. Кто-нибудь знает, что не работает?


person Tensigh    schedule 30.06.2014    source источник


Ответы (1)


Если кому-то нужно знать, вот лекарство:

В этом случае Python использовал Unicode, когда мне понадобился Shift-JIS. У меня сработало указание строк для использования Unicode, затем их кодирование в Shift-JIS, а затем запись их в файл. Это срабатывало каждый раз.

Например:

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

Затем строка будет закодирована в shift-JIS и записана. Это не самый элегантный способ сделать это, но я надеюсь, что это кому-то поможет, мне потребовалось около 2 часов, чтобы понять.

person Tensigh    schedule 01.07.2014