将转义的 unicode 序列转换为人类可读的格式

convert escaped unicode sequence to human readable format

我一直在使用这个 python 代码:

pattern = u'丨フ丨ノ一丨ノ丶フノ一ノ丨フ一一ノフフ丶'
result = [u'<span id="z_i_t2_bis" title="\u7ad6\u6298\u7ad6\u6487\u6a2a\u7ad6\u6487\u637a\u6298\u6487\u6a2a\u6487\u7ad6\u6298\u6a2a\u6a2a\u6487\u6298\u6298\u637a">\u4e28\u30d5\u4e28\u30ce\u4e00\u4e28\u30ce\u4e36\u30d5\u30ce\u4e00\u30ce\u4e28\u30d5\u4e00\u4e00\u30ce\u30d5\u30d5\u4e36</span>']

if pattern in result[0]:
    print('found')

但这很麻烦,而且并没有真正做到我想要的,即将逃脱的官话重新变成可以理解的东西,就像在那个模式中一样。是否有一些简单的 unix 工具或命令可以快速有效地执行此任务?

seems that is one would work,但是我试了一下,还是不行。即

result = "\u4e28\u30d5\u4e28\u30ce\u4e00\u4e28\u30ce\u4e36\u30d5\u30ce\u4e00\u30ce\u4e28\u30d5\u4e00\u4e00\u30ce\u30d5\u30d5\u4e36"

result.decode('utf-8')

产生了错误:attribute error 'str' object has no attribute 'decode'

如果您只是 print(result) 那么您将得到 "gobbledygook",因为当 Python 为您提供明确的输出作为列表或元组的元素时,它就是使用的。但是,如果您直接打印字符串,print(result[0]),它将尝试按预期打印自然字符。

如果您想自己将字符转换为 utf-8,请使用 encode 而不是 decodeencode 将 Unicode 字符串转换为字节,decode 从 字节生成 Unicode 字符串