7

たとえば、Python シェル (IDLE) では次のようになります。

>>> a = "\x3cdiv\x3e"
>>> print a

得られる結果は次のとおりです。

<div>

ただしa、ASCII エンコードされた文字列の場合:

>>> a = "\\x3cdiv\\x3e" ## it's the actual \x3cdiv\x3e string if you read it from a file
>>> print a

得られる結果は次のとおりです。

\x3cdiv\x3e

今私が本当に欲しいのはaです<div>、だから私はこれをしました:

>>> b = a.decode("ascii")
>>> print b

しかし、驚くべきことに、私が望む結果は得られませんでした。

\x3cdiv\x3e

では、基本的に を に変換するにはどうすれaばよいのでしょうか?\x3cdiv\x3eb<div>

ありがとう

4

2 に答える 2

5

Python 3.x では、Kabie の回答を次のように適応させます。

a = b"\x3cdiv\x3e"
a.decode('unicode_escape')

また

a = b"\x3cdiv\x3e"
a.decode('ascii')

両方与える

>>> a
b'<div>'

bプレフィックスとは何ですか?

バイト リテラルには、常に 'b' または 'B' のプレフィックスが付きます。str 型の代わりに bytes 型のインスタンスを生成します。ASCII 文字のみを含めることができます。128 以上の数値を持つバイトは、エスケープで表現する必要があります。

于 2013-05-11T08:57:45.587 に答える