Вывод Xcode отличается от IDLE при использовании UTF-8 (Python 3) - PullRequest
2 голосов
/ 26 декабря 2011

Я использую Xcode 4.2 и IDLE под Mac OS 10.7 для компиляции кода Python 3, который выглядит следующим образом:

#coding=utf-8
print("ľťď")

Несмотря на использование того же интерпретатора, который является python 3.2.2, в то время как IDLE возвращает ожидаемую строку ľťď (на самом деле, она работает даже без первой строки - если я правильно понимаю, эта версия Python использует utf -8 как кодировка по умолчанию), Xcode возвращает ошибку:

Traceback (most recent call last):
  File "/Users/.../main.py", line 2, in <module>
    print("\u013e\u0165\u010f")
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

Как я могу добиться того же вывода в XCode, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 28 декабря 2011

Некоторые люди против использования ~/.MacOSX/environment.plist (например, http://tug.org/mailman/htdig/macostex-archives/2011-September/047624.html)

С другой стороны, я в 10.6 использую версии Python и tcl ActiveState, и открытие IDLE в качестве приложения дает«us-ascii», но открытие его из терминала ($ idle3) дает «utf-8», что может позволить вам избежать использования environment.plist.

0 голосов
/ 26 декабря 2011

Я нашел решение благодаря этой статье .

Если у вас возникла та же проблема, все, что вам нужно сделать, это создать стандартный список свойств XML ~/.MacOSX/environment.plist (caseчувствительный к расширению) с ключом PYTHONIOENCODING и строковым значением utf-8.Не забудьте выйти и войти перед тестированием.

Для получения более подробной информации, вы можете найти эти статьи полезными:

http://docs.python.org/using/cmdline.html#envvar-PYTHONIOENCODING

http://developer.apple.com/library/mac/#qa/qa1067/_index.html

environment.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PYTHONIOENCODING</key>
    <string>utf-8</string>
</dict>
</plist>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...