2016-04-05 6 views
0

はのはunicodeインスタンスを想定してみましょう:Python 2.7、unicodeインスタンスの "unicodeリテラル表現"をstrインスタンスに割り当てる方法は?

uni = u"but\u014dden" 

今、私たちは、このオブジェクトのUTF-8でエンコードされたバイトの文字列表現を出力するstring = uni.encode("utf-8")を呼び出すことができます。しかし、それは私たちが達成したいものではありません。代わりに、私たちは、バイト文字列に、この変数のユニコードリテラル表現を割り当てたいので、次の文は真と評価:

# string = do_the_thing(uni) 
string == "u\"but\\u014dden\"" 

答えて

1

はUnicodeオブジェクトからリテラルを作成するrepr() functionを使用します。

string = repr(uni) 

の場合、\uhhhhエスケープシーケンスを使用します。すべて U + 00FFを超えるコードポイント。 ASCIIとLatin-1の範囲では印刷できないものは\xhhエスケープ、の場合は標準の1文字エスケープ(\nなど)を使用します。定義されている文字の一部はです。また、文字列の値に一重引用符(および二重引用符)が含まれていないかぎり、二重以上の一重引用符を優先します。

デモ:

>>> uni = u"but\u014dden" 
>>> repr(uni) 
"u'but\\u014dden'" 
>>> repr(u'Latin 1 and a newline: å\n') 
"u'Latin 1 and a newline: \\xe5\\n'" 
>>> repr(u'Quoting 1: \'') 
'u"Quoting 1: \'"' 
>>> repr(u'Quoting 2: \'\"') 
'u\'Quoting 2: \\\'"\'' 
+0

私はそれが簡単でなければならなかった気持ちを持っていた:このupvoteを取る、ありがとうございました。 ) –

関連する問題