Я сделал некоторые адаптации к сценарию из этого ответа . и у меня проблемы с юникодом. Некоторые вопросы заканчиваются плохо.
Некоторые ответы и ответы в конечном итоге выглядят так:
Yeah.. I know.. I’m a simpleton.. So what’s a Singleton? (2)
Как я могу сделать перевод ’
на правильный символ?
Примечание: если это имеет значение, я использую python 2.6 на французских окнах.
>>> sys.getdefaultencoding()
'ascii'
>>> sys.getfilesystemencoding()
'mbcs'
EDIT1: Основываясь на сообщении Райана Гинстрома, я смог исправить часть вывода, но у меня возникли проблемы с юникодом python.
В режиме ожидания / Python:
Да .. Я знаю .. Я простак .. Так
Что такое синглтон?
В текстовом файле при перенаправлении stdout
Да .. Я знаю .. Я простак .. Так
что такое синглтон?
Как я могу это исправить?
Edit2: Я попробовал решение Джаррета Харди, но оно ничего не сделало.
Я нахожусь на Windows, использую Python 2.6, поэтому моя папка с пакетами сайта находится по адресу:
C: \ Python26 \ Lib \ сайт-пакеты
Не было файла siteconfig.py, поэтому я создал его, вставил код, предоставленный Джарретом Харди, запустил интерпретатор python, но, похоже, он не был загружен.
sys.getdefaultencoding ()
'ASCII'
Я заметил, что файл site.py находится по адресу:
C: \ Python26 \ Lib \ site.py
Я попытался изменить кодировку в функции
def setencoding():
"""Set the string encoding used by the Unicode implementation. The
default is 'ascii', but if you're willing to experiment, you can
change this."""
encoding = "ascii" # Default value set by _PyUnicode_Init()
if 0:
# Enable to support locale aware default string encodings.
import locale
loc = locale.getdefaultlocale()
if loc[1]:
encoding = loc[1]
if 0:
# Enable to switch off string to Unicode coercion and implicit
# Unicode to string conversion.
encoding = "undefined"
if encoding != "ascii":
# On Non-Unicode builds this will raise an AttributeError...
sys.setdefaultencoding(encoding) # Needs Python Unicode build !
для установки кодировки в utf-8. Это сработало (после перезагрузки python, конечно).
>>> sys.getdefaultencoding()
'utf-8'
Печально то, что это не исправило символы в моей программе. (