Я пытаюсь кодировать не-ASCII символов в Python с использованием UTF-16-ле, и вот фрагмент кода для этого:Использование UTF-16 кодирования в Python
import os
import sys
def run():
print sys.getdefaultencoding()
reload(sys)
sys.setdefaultencoding('utf-16-le')
print sys.getdefaultencoding()
test_dir = unit_test_utils.get_test_dir("utkarsh")
dir_name_1 = '東京'
....
....
if __name__ == '__main__':
run()
Когда этот код , это ошибка:
# /u/bin/python-qs /root/python/tests/abc.py -c /root/test.conf
File "/root/python/tests/abc.py", line 27
SyntaxError: Non-ASCII character '\xe6' in file /root/python/tests/abc.py on line 27, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Как это можно исправить? Я попытался добавить эту строку в начало файла, но безрезультатно:
# -*- coding: utf-16-le -*-
Погрешность на этот раз был:
# /u/bin/python-qs /root/python/tests/abc.py -c /root/test.conf
File "/root/python/tests/abc.py", line 2
import os
import sys
...
...
if __name__ == '__main__':
run()
^
SyntaxError: invalid syntax
Edit:
Строка 27: dir_name_1 = '東京 '
Можете ли вы включить полный пример, который создает эту ошибку? –
Является ли ваш исходный код написанным в кодировке utf-16? Проверьте с помощью 'file abc.py'. –
@MichelBillaud Выход: UTF-8 Unicode Текст программы Java – Maddy