В консоли, когда я пробую выходные русские символы It, дает мне???????????????
Кто знает почему?
Я попробовал запись в файл - в этом случае та же ситуация.
например,
f=open('tets.txt','w')
f.write('some russian text')
f.close
в файле-????????????????????????? /
или
p="some russian text"
print p
?????????????
В дополнительном Блокноте не позволяют мне сохранить файл с российскими буквами. Я даю это:
Этот файл содержит символы в формате Unicode, который будет потерян, если Вы сохраните этот файл, поскольку ANSI закодировал текстовый файл. Чтобы хранить информацию Unicode, нажмите Cancel ниже и затем выберите одну из опций Unicode из выпадающего списка Encoding. Продолжить?
Как скорректировать мою систему, таким образом, я сделаю не, имеют это проблемы.
Вот отработанный пример, пожалуйста, прочитайте комментарии:
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
# The above encoding declaration is required and the file must be saved as UTF-8
from __future__ import with_statement # Not required in Python 2.6 any more
import codecs
p = u"абвгдежзийкл" # note the 'u' prefix
print p # probably won't work on Windows due to a complex issue
with codecs.open("tets.txt", "w", "utf-16") as stream: # or utf-8
stream.write(p + u"\n")
# Now you should have a file called "tets.txt" that can be opened with Notepad or any other editor
Попробуйте открыть файл с помощью кодеков, вам нужно
import codecs
и затем
writefile = codecs.open('write.txt', 'w', 'utf-8')
Какую консоль вы используете? Скорее всего, ваша консоль не поддерживает этот язык. Убедитесь, что ваша консоль поддерживает Unicode (и что ваше приложение отправляет строки Unicode).
Обновление:
Чтобы ответить на ваш вопрос о проблемах с Блокнотом Windows, нажмите «Файл»> «Сохранить как», а затем выберите «Юникод» в раскрывающемся списке «Кодировка».
Вы тоже набираете в консоли или видите результаты только в консоли? Это похоже на проблему pep-0263, как сказал петрасзд.
print p.decode('your-system-encoding')
должно работать в консоли (я не знаю, какую систему кодирования вы используете для русского языка)
Если вы используете файл .py, вам нужно поместить # - * - coding: UTF- 8 - * -
(замена utf-8 на русскую кодировку) в верхней части файла, и я думаю, что нет необходимости в .decode
в print
, если ваша ОС настроен с правильной кодировкой. (по крайней мере мне это не нужно, но я не знаю, как это работает с русским языком)
Вам нужно определить кодировку файла, если он содержит символы, отличные от ASCII.