Pythonの文字列にUnicode文字にUnicodeエスケープシーケンスを変換するにはどうすればよいです
-
13-09-2019 - |
質問
「クリステンセンSkの\のxf6ld」:私は使用してタグの内容を取得しようとすると、
「Unicodeを(head.contents [3])、」私はこのような出力を得ます。私は、エスケープシーケンスを文字列として返すことにしたいです。 Pythonでそれを行う方法?
解決
Pythonは、通常の文字列として名前を見て、あなたが最初にunicodeにそれをデコードする必要がありますと仮定します:
>>> name
'Christensen Sk\xf6ld'
>>> unicode(name, 'latin-1')
u'Christensen Sk\xf6ld'
これを達成するための別の方法:
>>> name.decode('latin-1')
u'Christensen Sk\xf6ld'
「U」は、文字列の前に、それはuncodeあるシグナリングに留意されたいです。これを印刷する場合、アクセント付きの文字が正しく表示されます:
>>> print name.decode('latin-1')
Christensen Sköld
ところで:必要なときに、あなたは、例えばにユニコードを有効にするデ「エンコード」メソッドを使用することができますUTF-8文字列ます:
>>> name.decode('latin-1').encode('utf-8')
'Christensen Sk\xc3\xb6ld'
他のヒント
Unicodeを使用したバイト文字列がb"\N{SNOWMAN}"
をエスケープ考えると、b"\N{SNOWMAN}".decode('unicode-escape)
が期待されるUnicode文字列u'\u2603'
が生成されます。
私はそれがacutally正常に働いていると思われます。いないすべての端末がUnicodeをサポートしているため、デフォルトで、Pythonは、ASCIIエンコーディングで文字列を表示します。あなたが実際に文字列を印刷する場合、しかし、それが動作するはずです。次の例を参照してください。
>>> u'\xcfa'
u'\xcfa'
>>> print u'\xcfa'
Ïa
所属していません StackOverflow