Как записать российские символы в файле?

В консоли, когда я пробую выходные русские символы 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. Продолжить?

Как скорректировать мою систему, таким образом, я сделаю не, имеют это проблемы.

9
задан Alex.K. 25 March 2016 в 19:00
поделиться

5 ответов

Вот отработанный пример, пожалуйста, прочитайте комментарии:

#!/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
15
ответ дан 4 December 2019 в 08:14
поделиться

Попробуйте открыть файл с помощью кодеков, вам нужно

import codecs

и затем

writefile = codecs.open('write.txt', 'w', 'utf-8')
8
ответ дан 4 December 2019 в 08:14
поделиться

Какую консоль вы используете? Скорее всего, ваша консоль не поддерживает этот язык. Убедитесь, что ваша консоль поддерживает Unicode (и что ваше приложение отправляет строки Unicode).

Обновление:

Чтобы ответить на ваш вопрос о проблемах с Блокнотом Windows, нажмите «Файл»> «Сохранить как», а затем выберите «Юникод» в раскрывающемся списке «Кодировка».

1
ответ дан 4 December 2019 в 08:14
поделиться

Вы тоже набираете в консоли или видите результаты только в консоли? Это похоже на проблему pep-0263, как сказал петрасзд.

print p.decode('your-system-encoding')

должно работать в консоли (я не знаю, какую систему кодирования вы используете для русского языка)

Если вы используете файл .py, вам нужно поместить # - * - coding: UTF- 8 - * - (замена utf-8 на русскую кодировку) в верхней части файла, и я думаю, что нет необходимости в .decode в print , если ваша ОС настроен с правильной кодировкой. (по крайней мере мне это не нужно, но я не знаю, как это работает с русским языком)

0
ответ дан 4 December 2019 в 08:14
поделиться

Вам нужно определить кодировку файла, если он содержит символы, отличные от ASCII.

http://www.python.org/dev/peps/pep-0263/

2
ответ дан 4 December 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: