2011-02-05 1 views
0

は、私は以下に示すように、私は、UTF-8に変換したいいくつかの日本語の単語があります。PythonのUTF-8の日本

jap_word1 = u'中山' 
jap_word2 = u'小倉' 

print jap_word1.encode('utf-8') # Doesn't work 
print jap_word2.encode('utf-8') # Prints properly 

をなぜそれが一つの単語がUTF-8に正しく変換し、に印刷することができるということです同じ文字を表示するが、他の文字は表示しない?

あなたのコンソールがUTF-8ではありませんので

+1

おそらく2番目のプリントはword2であることを意味しますか? – DSM

+0

それを指摘するTHankss。それを修正しました。 – haha

+1

人種差別的な言い回しを避けるために、 "jap"ではなく日本語の略語として "jp"を使用することを強くお勧めします。この文脈では、それはあなたが意味することを盲目的に明白です...しかし、私はまだ気付いた。そして、jpは標準です。 – Crowbeak

答えて

0

(私はWindows 7の究極の上のpython 2.6を使用しています)。実行する前にchcp 65001を実行してください。物事の

+0

私はPythonアイドルを使用しています。面白いのは、一部の文字だけが正しく変換されているが残りは変換されていないということです。 – haha

1

ロット適切に文字を印刷するのに合わせる必要があります。

  1. 何エンコーディングスクリプトが中に保存されていますか?
  2. スクリプトに# coding: xxxxというステートメントがありますか?xxxxはファイルが保存されているエンコードと一致していますか?
  3. 出力端末でエンコードがサポートされていますか? a a。そうでない場合は、コンソールエンコーディングを変更できますか? (Windowsではchcpコマンド)
  4. 使用しているフォントが文字をサポートしていますか?

このスクリプトをUTF-8で保存すると、PythonWinとIDLEの両方で動作します。

# coding: utf-8 
jap_word1 = u'中山' 
jap_word2 = u'小倉' 

print jap_word1 
print jap_word2 

興味深いことに、私はIDLEで、両方のプリントに追加.encode('utf-8')とあなたの結果を得たが、それは、そのデフォルトの出力ウィンドウUTF-8をサポートPythonwin、正常に機能していました。

アイドルは変な獣です。私のシステム上のsys.stdout.encodingは、アジア言語の文字をサポートしていない'cp1252'を生成しますが、UTF-8で印刷すると間違った最初の単語と2番目の単語が正しく表示されます。

+0

私はこれをUbuntuのPythonコンソールから実行すると、私は問題に遭遇することはありません。しかし、Windows 7のPython IDLEでは、良さ... – haha