UTF-8を復号平文のpython3

あなたが発生した場合は「\\ xe4 \\ xb8 \\ XAD \\ xe5 \\ x9b \\ XBD」プレーンテキストで、このようなUTF-8文字列ではなく、コードではなく、どこかから取得し、変更することはできません、我々は、特別なデコードモードを必要とします

python2では、それを行う方法、それが直接解決(「string_escape」)をデコードすることができますが、strのタイプのpython3はデコードできないのですか?

stackoverflowのからの二つの方法、最初があります。

https://stackoverflow.com/questions/26311277/evaluate-utf-8-literal-escape-sequences-in-a-string-in-python3


S = R ' \ xe4 \ xb8 \ XAD \ xe5 \ x9b \ XBD ' C = s.encode()。デコード(' ユニコードエスケープ').encode(' raw_unicode_escape ').decode(' UTF-8 '
プリント(C)

はい、その後、デコード( 'ユニコードエスケープ')、実際には文字列になり、 '\ xe4 \ xb8 \ XAD \ xe5 \ x9b \ XBD'、あなたは、従来の.encode( 'raw_unicode_escape')を使用することができます。デコード( 'UTF-8')溶液

 

からほとんど知られている第2の方法

何のpython3ピットをコーディング? - haの答えは - 知っているほとんどhttps://www.zhihu.com/question/60231684/answer/1076033667

S = R ' \ xe4 \ XBD \ XA0 \ xe5 \ xa5 \ XBD ' 
評価(" 印刷( ' " + S + " ' .encode( 'raw_unicode_escape')。デコード( 'UTF-8'))" 

写成函数
DEF getUtf8Escape(S):
    D = [] 
    はeval(" d.append( ' " + S + " ' .encode( 'raw_unicode_escape')デコード( 'UTF-8'))。" 戻りD [0] 

印刷( getUtf8Escape(S))

シンプルで粗製の方法、それが動作します

 

 

それは明確にはUnicodeであるかどうかちなみに、\\エスケープUTF-8は、実際には非常に簡単です

#Unicode明文
A = R '\ u8bf7'

B = a.encode()。デコード( "unicode_escape")

プリント(B)

#UTF-8
= '\ xe4 \ XBD \ XA0 \ xe5 \ xa5 \ XBD'

B = a.encode( 'raw_unicode_escape')。デコード( 'UTF-8')

印刷(B)

おすすめ

転載: www.cnblogs.com/LiuZhongbin888/p/12486978.html