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

时间:2015-02-10 04:36:06

标签: python unicode encoding

我一直在使用这个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')

但这很麻烦,而且并没有真正做到我想要的,这就是让逃脱的gobbledygook回归到可以理解的东西,就像那种模式一样。是否有一些简单的unix工具或commnand可以快速有效地执行此任务?

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'

1 个答案:

答案 0 :(得分:1)

如果您只是print(result),那么您将获得“gobbledygook”,因为这就是Python在给出明确的输出作为列表或元组的元素时使用的内容。但是如果直接打印字符串print(result[0]),它将尝试按照预期打印自然字符。

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