用python进行字符编码以取代';u2019&x27;与';
我已经尝试了很多方法将其编码为最终结果用python进行字符编码以取代';u2019&x27;与';,python,python-2.7,unicode,character-encoding,lxml,Python,Python 2.7,Unicode,Character Encoding,Lxml,我已经尝试了很多方法将其编码为最终结果“BACK RUSHIN”,最重要的字符是右撇号“ 我想使用Python的一些内置函数来获得最终结果,在这些函数中,普通字符串和unicode字符串之间没有区别 这就是我用来检索字符串的代码:str(unicode(etree.tostring(root.xpath('path')[0],method='text',encoding='utf-8'),errors='ignore')).strip() 结果是:“BACK RUSHIN”省略了撇号“ 另一种方
“BACK RUSHIN”
,最重要的字符是右撇号“
我想使用Python的一些内置函数来获得最终结果,在这些函数中,普通字符串和unicode字符串之间没有区别
这就是我用来检索字符串的代码:str(unicode(etree.tostring(root.xpath('path')[0],method='text',encoding='utf-8'),errors='ignore')).strip()
结果是:“BACK RUSHIN”
省略了撇号“
另一种方法是:root.xpath('path/text()')
结果是:u'BACK RUSHIN\u2019'
在python中
最后,如果我尝试:u'BACK RUSHIN\u2019'.encode('ascii','replace')
结果是:'backrushin'
请不要替换函数,我想使用pythons编解码器库。
也不要打印字符串,因为它被保存在变量中
谢谢
所以您想从XML中读取
”
(右单引号),但要将其转换为”
(撇号)?这不是编解码器的问题。正如罗布所暗示的,这是两个完全不同的角色。将一个转换为另一个是替换问题,而不是编码问题。(名称错误的)unidecode
模块只不过是一组从非ASCII字符到类似ASCII字符的替换,用于当您必须与无法使用Unicode的系统进行接口时的极端情况。否则,以这种方式破坏字符串通常是个坏主意。值得一提的是,您必须安装unidecode
。
>>> import unidecode
>>> unidecode.unidecode(u'BACK RUSHIN\u2019')
"BACK RUSHIN'"