不知道这是否是微不足道的,但我需要将unicode字符串转换为ascii字符串,我不希望所有那些转义字符。我的意思是,是否有可能对一些非常相似的ascii字符进行“近似”转换?
例如:Gavin O'Connor被转换为Gavin O \ x92Connor,但我真的希望它能够转换为Gavin O'Connor。这可能吗?有没有人写过一些工具来做,或者我是否必须手动更换所有的字符?
非常感谢! 马可
答案 0 :(得分:26)
使用Unidecode包来音译字符串。
>>> import unidecode
>>> unidecode.unidecode(u'Gavin O’Connor')
"Gavin O'Connor"
答案 1 :(得分:8)
b = str(a.encode('utf-8').decode('ascii', 'ignore'))
应该可以正常工作。
答案 2 :(得分:3)
import unicodedata
unicode_string = u"Gavin O’Connor"
print unicodedata.normalize('NFKD', unicode_string).encode('ascii','ignore')
<强>输出:强>
Gavin O'Connor
以下是描述规范化表单的文档:http://unicode.org/reports/tr15/
答案 3 :(得分:1)
有一种技术可以去除字符的重音,但是需要直接替换其他字符。查看此文章:http://effbot.org/zone/unicode-convert.htm
答案 4 :(得分:0)
尝试简单的字符替换
str1 = "“I am the greatest”, said Gavin O’Connor"
print(str1)
print(str1.replace("’", "'").replace("“","\"").replace("”","\""))
PS:如果获得error
,请在# -*- coding: utf-8 -*-
文件的顶部添加.py