Python - Unicodeエスケープされた文字列を通常の文字列に戻す
この投稿は最終更新日から1年以上経過しています
s = r'\u307b\u3052'
print(type(s))
# <class 'str'>
s = s.encode()
print(type(s))
# <class 'bytes'>
s = s.decode('unicode-escape')
print(type(s))
# <class 'str'>
print(s)
# ほげ
print(r'\u307b\u3052'.encode().decode('unicode-escape'))
# ほげ
decode()メソッドは文字列クラスに定義されていないためUnicodeエスケープされた文字列を通常の文字列に戻すためにはencode()でバイト列にエンコードしてからdecode()でデコードする。
または組み込みのcodecsモジュールを使って
import codecs
s = r'\u307b\u3052'
s = codecs.decode(s, 'unicode-escape')
print(type(s))
# <class 'str'>
print(s)
# ほげ
環境
- Python 3.8.5