2017-01-05 7 views
-2

私はPythonのprint関数が文字列のエンコーディングとそれをどのように処理するかを決定する方法に興味がありますか?たとえば、私は、文字列をPythonの "print"関数はどのように機能していますか?

を持っている:

str1 = u'\u041e\u0431\u044a\u0435\u043c 
print(str1) # Will be converted to Объем` 

のpythonのフードの下で何が起こっていますか?

更新
私はそれはそれはで実行している環境から来るsys.stdout.encodingでエンコードを使用してのpython

+0

... –

+0

あなたが2.7を意味しますか? 3つの印刷機能を使用しました – doctorlove

+1

@doctorlove偶数2.7は 'from __future__ import print_function'で利用可能な印刷機能を持っています。そうでなければ上記のprint文があります。'(str1) 'は括弧でくくられた形式です。 – skyking

答えて

1

のCPythonの2.7実装に興味があります。

+0

を意味します – latsha

0

u文字列の前に違いがあります。文字列の値の前にある 'u'は、文字列がUnicodeとして表されていることを意味します。これは、通常のasciiより多くの文字を表現する方法です。あなたは、単に文字列リテラル内のUnicode 文字を含めることができるように

Pythonソースコードのデフォルトエンコーディングは、UTF-8です。

おそらく決定するインタプリタを実装して誰のための規格で規定されるが、残されていない

More info here

関連する問題