如何在文件中写俄文字符?

在控制台,当我试图输出俄罗斯字符它给了我???????????????

谁知道为什么?

我试图写入文件 – 在这种情况下是相同的情况。

例如

f=open('tets.txt','w') f.write('some russian text') f.close 

里面的文件是 – ????????????????????????? /

要么

 p="some russian text" print p ????????????? 

在附加的记事本中,不要让我用俄文字母保存文件。 我给这个:

此文件包含Unicode格式的字符,如果将此文件另存为ANSI编码的文本文件,则会丢失该字符。 要保留Unicode信息,请单击下面的“取消”,然后从“编码”下拉列表中select一个Unicode选项。 继续?

如何调整我的系统,所以我不会有这个问题。

Solutions Collecting From Web of "如何在文件中写俄文字符?"

这是一个解决的例子,请阅读评论:

 #!/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') 

如果包含非ASCII字符,则需要定义文件编码。

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

尝试p=u"some russian text"

你使用的是什么控制台? 机会是,您的控制台不支持该语言。 确保您的控制台支持Unicode(并且您的应用程序正在发送Unicode字符串)。

更新:

要解决有关Windows记事本问题的更新问题,请执行以下操作:单击“文件” – >“另存为”,然后从“编码”下拉列表中选择“Unicode”。

你是否也在控制台上输入或者只是在控制台上输入结果? petraszd说,这看起来像pep-0263问题。

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

应该在控制台上工作(我不知道你用于俄语的编码系统是什么)

如果您使用.py文件,则需要在文件的顶部放置# -*- coding: UTF-8 -*- (用Rusian编码替换utf-8),我认为不需要.decode如果您的操作系统配置了正确的编码,则在print时解码。 (至少我不需要它,但我不知道它如何与俄罗斯工作)