python中unicode字符串到ascii字符串的近似转换

发布于 2024-12-14 20:30:01 字数 233 浏览 0 评论 0原文

不知道这是否微不足道,但我需要将 unicode 字符串转换为 ascii 字符串,并且我不希望周围有所有这些转义字符。我的意思是,是否有可能“近似”转换为一些非常相似的 ascii 字符?

例如:Gavin O'Connor 转换为 Gavin O\x92Connor,但我真的希望它只是转换为 Gavin O'Connor。这可能吗?有人编写了一些实用程序来执行此操作,还是我必须手动替换所有字符?

非常感谢! 马可

don't know wether this is trivial or not, but I'd need to convert an unicode string to ascii string, and I wouldn't like to have all those escape chars around. I mean, is it possible to have an "approximate" conversion to some quite similar ascii character?

For example: Gavin O’Connor gets converted to Gavin O\x92Connor, but I'd really like it to be just converted to Gavin O'Connor. Is this possible? Did anyone write some util to do it, or do I have to manually replace all chars?

Thank you very much!
Marco

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

盛夏已如深秋| 2024-12-21 20:30:01

使用 Unidecode 包来音译字符串。

>>> import unidecode
>>> unidecode.unidecode(u'Gavin O’Connor')
"Gavin O'Connor"

Use the Unidecode package to transliterate the string.

>>> import unidecode
>>> unidecode.unidecode(u'Gavin O’Connor')
"Gavin O'Connor"
只是我以为 2024-12-21 20:30:01
import unicodedata

unicode_string = u"Gavin O’Connor"
print unicodedata.normalize('NFKD', unicode_string).encode('ascii','ignore')

输出:

Gavin O'Connor

以下是描述规范化形式的文档:http://unicode.org/报告/tr15/

import unicodedata

unicode_string = u"Gavin O’Connor"
print unicodedata.normalize('NFKD', unicode_string).encode('ascii','ignore')

Output:

Gavin O'Connor

Here's the document that describes the normalization forms: http://unicode.org/reports/tr15/

东北女汉子 2024-12-21 20:30:01
b = str(a.encode('utf-8').decode('ascii', 'ignore'))

应该可以正常工作。

b = str(a.encode('utf-8').decode('ascii', 'ignore'))

should work fine.

木森分化 2024-12-21 20:30:01

有一种技术可以去除字符中的重音符号,但其他字符需要直接替换。查看这篇文章:http://effbot.org/zone/unicode-convert.htm

There is a technique to strip accents from characters, but other characters need to be directly replaced. Check this article: http://effbot.org/zone/unicode-convert.htm

送君千里 2024-12-21 20:30:01

尝试简单的字符替换

str1 = "“I am the greatest”, said Gavin O’Connor"
print(str1)
print(str1.replace("’", "'").replace("“","\"").replace("”","\""))

PS:如果得到 错误

Try simple character replacement

str1 = "“I am the greatest”, said Gavin O’Connor"
print(str1)
print(str1.replace("’", "'").replace("“","\"").replace("”","\""))

PS: add # -*- coding: utf-8 -*- to the top of your .py file if you get error

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文