我有一个包含 \u 格式的 unicode 字符的文件。我想将它们作为普通的 unicode 字符串写入另一个文件。但我无法将反斜杠解释为转义字符。
所以我把它放在一个文件中,例如,\u1203\u1208\u1208 \u0074\u00E4\u0068\u0061\u006C\u00E4\u006C\u00E4
,
应该像这样打印出来。
>>> print("\u1203\u1208\u1208 \u0074\u00E4\u0068\u0061\u006C\u00E4\u006C\u00E4")
ሃለለ tähalälä
但我却明白了这一点。
>>> with open('ti.txt') as f:
for line in f:
print(line)
\u1203\u1208\u1208 \u0074\u00E4\u0068\u0061\u006C\u00E4\u006C\u00E4
我尝试过每种组合str()
, repr()
, encode().decode()
我能想到的。但这些反斜杠最终仍然是反斜杠。
最佳答案(2021+):
import codecs
# This is True (successfully decoded):
print(codecs.decode(r"\u1234", "unicode_escape") == "\u1234")
有了这个答案,您不需要将字符串转换为bytes
-type 对象以便能够解码它们。它是许多人错误使用的糟糕的“str.encode().decode()”模式的替代品。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)