Pythonの文字列にUnicode文字にUnicodeエスケープシーケンスを変換するにはどうすればよいです

StackOverflow https://stackoverflow.com/questions/990169

  •  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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top