
如果,
s=url['title']品牌
s等于以下内容:
In [48]: s=u'Oscar Winners Best Pictures Box Set xc2xa36.49'
那么问题是
- 在定义的代码中
url
, - 否则来自网络的内容格式不正确。
如果是案例1,我们需要查看定义的代码
url。
如果是第2种情况,一种快捷的解决方法是
s使用
raw-unipre-escape编解码器对unipre对象进行编码:
In [49]: print(s)Oscar Winners Best Pictures Box Set £6.49In [50]: print(s.enpre('raw-unipre-escape'))Oscar Winners Best Pictures Box Set £6.49另请参阅此SO问题。
关于这样的标题
s=u'Star Trek XI £3.99':同样,最好在问题到达现阶段之前解决问题-
也许可以通过查看
url定义方式来解决。但是,假设来自网络的内容格式不正确,可以采用以下解决方法:
In [86]: import reIn [87]: print(re.sub(r'&#x([a-fA-Fd]+);',lambda m: unichr(int(m.group(1),base=16)),s))Star Trek XI £3.99
一点解释:
注意
In [51]: x=u'£'In [53]: x.enpre('utf-8')Out[53]: 'xc2xa3'因此
u'£',用
utf-8编解码器编码的unipre对象成为字符串对象
'xc2xa3'。
不知何故,
url['title']被定义为 unipre 对象
u'xc2xa3'。(
u有很大的不同!)
这样,
u'xc2xa3'当我们有欲望时
'xc2xa3'。
u'xc2xa3'使用
raw-unipre-escape编解码器对unipre对象进行编码会将其转换为
'xc2xa3'。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)