2016-08-24 4 views
0

Я несколько раз пытался экспортировать китайский из переменных списка в файл csv или txt и нашел проблемы с этим.Python 3.5: Экспорт китайских символов

В частности, я уже установил кодировку как utf-8 или utf-16 при чтении данных и записи их в файл. Тем не менее, я заметил, что я не могу этого сделать, когда базовым языком Windows 7 является английский, даже если я изменил настройку языка на китайский. Когда я запускаю программы Python под окном 7 с китайским языком в качестве базового языка, я могу успешно экспортировать и демонстрировать китайский язык отлично.

Мне интересно, почему это происходит, и любое решение, помогающее мне показать китайские символы в экспортированном файле при запуске программ Python под английским окном?

+0

Может ли китайское шоу нормально на вашем английском языке Win7? Я имею в виду, что вы можете сначала проверить их кодировку. КТВ, вы Chinesse? – pingze

+0

Просьба включить код, чтобы другие люди могли воспроизвести вашу проблему. Пожалуйста, проверьте эту ссылку - http://stackoverflow.com/help/mcve –

ответ

0

Я только что узнал, что вам нужно сделать 2 вещи для достижения этой цели:

  1. Изменить язык отображения окна на китайском языке.
  2. Используйте кодировку UTF-16 в процессе записи.
+0

Вам не нужно менять язык отображения на китайский, если вы не пытаетесь просмотреть файл на консоли Windows, по умолчанию используется локализованная кодовая страница (CP437 например, в Windows Windows). Программы GUI, такие как «Блокнот», «Слово» и т. Д., Могут отображать текстовые файлы UTF-8, пока используемый шрифт поддерживает символы. –

0

Здесь находится Windows Windows 10 под управлением Python IDE под названием PythonWin. Нет проблем с китайцами.

enter image description here

Вот та же программа работает в консоли Windows. Обратите внимание, что стандартная кодовая страница США по умолчанию для консоли: cp437. cp65001 - UTF-8. Ключом является переключение на кодировку, поддерживающую китайский текст. Текст, приведенный ниже, был вырезан и вставлен непосредственно с консоли. В то время как символы отображаются правильно, вставлен в Stack Overflow, шрифт консоли не поддерживал китайский язык и фактически отображал enter image description here.

C:\>chcp 
Active code page: 437 

C:\>x 
Traceback (most recent call last): 
    File "C:\\x.py", line 5, in <module> 
    print(f.read()) 
    File "C:\Python33\lib\encodings\cp437.py", line 19, in encode 
    return codecs.charmap_encode(input,self.errors,encoding_map)[0] 
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-5: character maps to <undefined> 

C:\>chcp 65001 
Active code page: 65001 

C:\>type test.txt 
我是美国人。 
C:\>x 
我是美国人。 

Блокнот отображает выходной файл правильно, а также:

enter image description here

Либо использовать IDE, который поддерживает UTF-8, или написать свой вывод в файл и читать его с помощью инструмента, как Блокнот ,

Пути, чтобы получить консоль Windows для фактического вывода китайцев, - это пакет win-unicode-console и изменение настроек языка и региона, вкладка «Администратор», языковой стандарт системы на китайский. Для последнего Windows останется английским, но консоль Windows будет использовать китайскую кодовую страницу вместо английского.

+0

нормально, но это не работает для моей машины с WinPython. Для моего случая я должен изменить язык отображения Window. Спасибо за ваши комментарии, так или иначе. –