【发布时间】:2014-07-10 00:35:26
【问题描述】:
我的文本中有一些奇怪的字符。例如,可能会出现“éxâmplë”这个词。但它并没有这样显示,而是显示为&#130;x&#131;mpl&#137;。幸运的是,这些数字是 ASCII 编码的,所以我可以使用 chr()。所以,我想用chr(number) 替换&#<number>;。
我开始为此使用re 模块,但由于我对此没有那么丰富的经验,所以我不知道该怎么做。下面是我的尝试,但当然,代码尝试在执行re.sub() 部分之前将int() 部分转换为int,从而引发ValueError。我怎样才能正确地做到这一点?
sentence = "This is an ‚xƒmpl‰."
chrpatt = "&#([0-9]{3});"
sentence = re.sub(chrpatt, chr(int("\g<1>")), sentence)
print sentence
【问题讨论】:
-
您从哪里获得这些数据? HTML 使用 DOS 代码页对变音字符进行编码是非常不寻常的。
-
数据是从使用
urllib2的网站读取的。