11

コンソールでロシア語の文字を出力しようとすると???????????????

誰が理由を知っていますか?

私はファイルに書き込もうとしました-この場合も同じ状況です。

例えば

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

ファイル内は-?????????????????????????/

また

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

追加のメモ帳では、ロシア語の文字でファイルを保存することを許可していません。私はこれを与えます:

このファイルには、このファイルをANSIエンコードされたテキストファイルとして保存すると失われるUnicode形式の文字が含まれています。Unicode情報を保持するには、下の[キャンセル]をクリックして、[エンコード]ドロップダウンリストからUnicodeオプションの1つを選択します。継続する?

システムを調整する方法。この問題は発生しません。

4

5 に答える 5

19

これがうまくいった例です、コメントを読んでください:

#!/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
于 2010-07-08T14:52:30.107 に答える
9

コーデックを使用してファイルを開いてみてください。

import codecs

その後

writefile = codecs.open('write.txt', 'w', 'utf-8')
于 2010-07-08T13:02:41.370 に答える
2

非ASCII文字が含まれている場合は、ファイルエンコーディングを定義する必要があります。

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

于 2010-07-07T21:05:58.217 に答える
1

どのコンソールを使用していますか?たぶん、あなたのコンソールはその言語をサポートしていません。コンソールがUnicodeをサポートしていること(およびアプリがUnicode文字列を送信していること)を確認してください。

アップデート:

Windowsのメモ帳の問題に関する質問の更新に対処するには:[ファイル]-> [名前を付けて保存]をクリックし、[エンコード]ドロップダウンリストから[Unicode]を選択します。

于 2010-07-07T21:04:47.933 に答える
0

コンソールにも入力しますか、それともコンソールに結果を表示するだけですか?petraszdが言ったように、これはpep-0263の問題に見えます。

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

コンソールで動作するはずです(ロシア語で使用しているエンコーディングシステムはわかりません)

.pyファイルを使用している場合は、ファイルの先頭に配置する必要があります(utf-8をRusianエンコーディングに置き換えます)。OSが適切なエンコーディングで構成されている場合は、 in# -*- coding: UTF-8 -*-は必要ないと思います。(少なくとも私はそれを必要としませんが、それがロシア語でどのように機能するかはわかりません).decodeprint

于 2010-07-08T04:44:52.993 に答える