2015-12-28 9 views
5

最新のPython 2.7.11 64bitを公式サイトからダウンロードしてWindows 10にインストールしました。新しいIDLEファイルに你好のような漢字が含まれていると、ファイルを保存できません。私が数回それを保存しようとすると、新しいファイルがクラッシュして消えました。Python 2.7.11 IDLEを使用しているときに漢字でファイルを保存できないのはなぜですか?

最新のpython-3.5.1-amd64.exeもインストールしましたが、この問題はありません。

どうすれば解決できますか?

より: wikiページからサンプルコード、https://zh.wikipedia.org/wiki/%E9%B8%AD%E5%AD%90%E7%B1%BB%E5%9E%8B

は、私がここにコードを過ぎ、StackOverflowののalaysは私を警告している場合:ボディ "Iちょうどダウ" を含めることはできません。どうして?

ありがとう!

enter image description here

より: 私は、この設定オプションを見つけるが、それは全く役に立ちません。 IDLE - > [オプション] - > [設定] IDLE - >一般 - >デフォルトのソースエンコーディング:UTF-8

より: 中国のコードの前uを追加することで、すべてが右になり、それは素晴らしい方法です。下記のように: enter image description here

ありません.がないと、破損したコードが表示されることがあります。以下のようになります。 enter image description here

+0

最小限の作業サンプルコードを入力してください。 –

答えて

2

Python 3.xはASCIIをデフォルトのエンコーディングとして使用し、Python 3.xはUTF-8を使用します。

# -*- coding: utf-8 -*- 
:あなたはまた、あなたのコードの最初の行に次の行を入れて試すことができます
my_string.encode("utf-8")
がUTF-8にアスキーを変換する(またはあなたが必要とするコードする任意の他にそれを変更)

:ちょうど使用

+0

あなたが最後に述べたやり方はうまくいきます! –

2

Python 2は、中国語文字を格納できない文字列のデフォルトエンコーディングとしてASCIIを使用します。一方、Python 3では、デフォルトで文字列にUnicodeエンコーディングが使用されており、これは漢字を格納できます。

しかし、それはPython 2がUnicode文字列を使用できないことを意味しません。文字列をUnicodeにエンコードするだけです。次に、文字列をUnicode文字列に変換する例を示します。

>>> plain_text = "Plain text" 
>>> plain_text 
'Plain text' 
>>> utf8_text = unicode(plain_text, "utf-8") 
>>> utf8_txt 
u'Plain_text' 

プレフィックス文字列でuutf8_txt、それはUnicode文字列であることを述べています。

これも可能です。

>>> print u"你好" 
>>> 你好 

あなたはちょうどそれがUnicode文字列であることを示すためにuであなたの文字列を付加する必要があります。

+0

'u'を追加することは素晴らしいです! –

0

Windows上のPython 2を使って:

# -*- coding: utf-8 -*- 

  1. をIDLEに保存するUnicode文字を含むファイルの場合は、行は、その最初に追加する必要があります。

  2. およびWindowsのコンソール出力に正しく表示するUnicode文字のために、IDLEコンソールまたはWindowsシェルで、ファイルに保存されたスクリプトを実行している場合、文字列はuを付加する必要があり:

    print u"你好" 
    print u"Привет" 
    

    しかし、対話モードでは、私はキリル文字でこれを行う必要はないことを発見しました。

関連する問題