UnicodeEncodeError: кодек «ascii» не может кодировать символ в позиции 0: порядковый номер не в диапазоне (128)
я работаю над скриптом Python, который использует символ ножниц (9986 - ✂) и я'я пытаюсь перенести мой код на Mac, но яЯ сталкиваюсь с этой ошибкой.
Символ ножниц хорошо отображается при запуске из IDLE (Python 3.2.5 - OS X 10.4.11 iBook G4 PPC), и код прекрасно работает на Ubuntu 13.10, но когда я пытаюсь запустить его в терминале, я получаю эту ошибку / проследить:
Traceback (most recent call last):
File "snippets-convert.py", line 352, in
main()
File "snippets-convert.py", line 41, in main
menu()
File "snippets-convert.py", line 47, in menu
print ("|\t ",snipper.decode(),"PySnipt'd",snipper.decode(),"\t|")
UnicodeEncodeError: 'ascii' codec can't encode character '\u2702' in position 0: ordinal not in range(128)
и код, который дает мне проблему:
print ("|\t ",chr(9986),"PySnipt'd",chr(9986),"\t|")
Безразлично»т этот сигнал, что терминал нене может отобразить этот символ? Я знаю, что это старая система, но в настоящее время это единственная система, которую я должен использовать. Может ли возраст ОС мешать программе?
прочитал над этими вопросами:
UnicodeEncodeError: 'ASCII» кодек можетт кодировать символ и\ ХеР» в позиции 0: порядковый номер вне диапазона (128) - Другой персонаж "
UnicodeEncodeError: 'ASCII» кодек можетт кодировать символ " - Используя 2.6, так что нене знаю, если это применимо
UnicodeEncodeError: 'ASCII» кодек можеткодировать символ? - Кажется, правдоподобное решение моей проблемы,.encode('UTF-8')
Я нене понимаю ошибку. Тем не менее, он отображает код символа, а не символ, который я хочу, и.decode()
просто дает мне ту же ошибку. Не уверен, если яЯ делаю это правильно.
UnicodeEncodeError: 'ASCII» кодек можетt кодировать символы в позиции 0-6: порядковый номер не в диапазоне (128) - Не уверен, если это применимо, онс помощью графического интерфейса, получения ввода и все на греческом языке.
Какие'вызывает эту ошибку? Это возраст системы / ОС, версия Python или какая-то программная ошибка?
РЕДАКТИРОВАТЬ: Эта ошибка возникает позже с этой проблемой дубликата (просто думал, что яя добавлю его в том же приложении и с той же ошибкой):
Traceback (most recent call last):
File "snippets-convert.py", line 353, in
main()
File "snippets-convert.py", line 41, in main
menu()
File "snippets-convert.py", line 75, in menu
main()
File "snippets-convert.py", line 41, in main
menu()
File "snippets-convert.py", line 62, in menu
search()
File "snippets-convert.py", line 229, in search
print_results(search_returned) # Print the results for the user
File "snippets-convert.py", line 287, in print_results
getPath(toRead) # Get the path for the snippet
File "snippets-convert.py", line 324, in getPath
snipXMLParse(path)
File "snippets-convert.py", line 344, in snipXMLParse
print (chr(164),child.text)
UnicodeEncodeError: 'ascii' codec can't encode character '\xa4' in position 0: ordinal not in range(128)
РЕДАКТИРОВАТЬ:
Я вошел в настройки символа терминала, и он фактически поддерживает этот символ (как вы можете видеть на этом скриншоте:
когда я вставляю его в терминал, он печатает это:\342\234\202
и когда я нажимаюВойти Я получаю это:-bash: ✂: command not found
РЕДАКТИРОВАТЬ Команды запускались как @ J.F. Себастьян спросил :::
python3 test-io-encoding.py
PYTHONIOENCODING: None
locale(False): US-ASCII
device(stdout): US-ASCII
stdout.encoding: US-ASCII
device(stderr): US-ASCII
stderr.encoding: US-ASCII
device(stdin): US-ASCII
stdin.encoding: US-ASCII
locale(False): US-ASCII
locale(True): US-ASCII
python3 -S test-io-encoding.py
PYTHONIOENCODING: None
locale(False): US-ASCII
device(stdout): US-ASCII
stdout.encoding: US-ASCII
device(stderr): US-ASCII
stderr.encoding: US-ASCII
device(stdin): US-ASCII
stdin.encoding: US-ASCII
locale(False): US-ASCII
locale(True): US-ASCII
РЕДАКТИРОВАТЬ Попробовалhackerish» Решение предоставлено @PauloBu:
Как видите, это вызвало одну (Yay!) Ножницу, но теперь я получаю новую ошибку. Traceback / ошибка:
+-=============================-+
✂Traceback (most recent call last):
File "snippets-convert.py", line 357, in
main()
File "snippets-convert.py", line 44, in main
menu()
File "snippets-convert.py", line 52, in menu
print("|\t "+sys.stdout.buffer.write(chr(9986).encode('UTF-8'))+" PySnipt'd "+ sys.stdout.buffer.write(chr(9986).encode('UTF-8'))+" \t|")
TypeError: Can't convert 'int' object to str implicitly
РЕДАКТИРОВАТЬ Добавлены результаты @PauloBu 'исправление:
+-=============================-+
|
✂ PySnipt'd
✂ |
+-=============================-+
РЕДАКТИРОВАТЬ:
И его исправить для его исправить:
+-=============================-+
✂✂| PySnipt'd |
+-=============================-+