Python-Unicode到ASCII转换

阿德里亚诺·阿尔梅达(Adriano Almeida)

我无法将以下Unicode转换为ASCII而不会丢失数据:

u'ABRA\xc3O JOS\xc9'

我尝试了encodedecode他们不会这样做。

有人有建议吗?

阿巴内特

Unicode字符,u'\xce0'并且u'\xc9'没有任何对应的ASCII值。因此,如果您不想丢失数据,则必须以某种有效的ASCII编码方式对数据进行编码。选项包括:

>>> print s.encode('ascii', errors='backslashreplace')
ABRA\xc3O JOS\xc9
>>> print s.encode('ascii', errors='xmlcharrefreplace')
ABRAÃO JOSÉ
>>> print s.encode('unicode-escape')
ABRA\xc3O JOS\xc9
>>> print s.encode('punycode')
ABRAO JOS-jta5e

所有这些都是ASCII字符串,并且包含来自原始Unicode字符串的所有信息(因此可以将它们全部逆转而不会丢失数据),但是对于最终用户来说,它们都不是那么漂亮(而且它们都不可以)只能通过来反转decode('ascii')

有关更多信息请参见str.encodePython专用编码Unicode HOWTO


附带说明一下,当有人说“ ASCII”时,他们实际上并不是在说“ ASCII”,而是“任何是ASCII的超集的8位字符集”或“我在其中包含的某些特定8位字符集”心神”。如果这就是您的意思,解决方案是将编码为正确的8位字符集:

>>> s.encode('utf-8')
'ABRA\xc3\x83O JOS\xc3\x89'
>>> s.encode('cp1252')
'ABRA\xc3O JOS\xc9'
>>> s.encode('iso-8859-15')
'ABRA\xc3O JOS\xc9'

困难的部分是要知道您要使用的字符集。如果您要编写生成8位字符串的代码和使用它的代码,而又没有更好的了解,则表示UTF-8。例如,如果使用8位字符串的代码是open要向其提供页面函数或Web浏览器或其他内容,则情况会更加复杂,并且没有很多信息就没有简单的答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python ASCII到Unicode

来自分类Dev

Python:将ascii转换为unicode的困难

来自分类Dev

将python unicode转换为ASCII写入文件

来自分类Dev

python Unicode字符串拆分/到json转换

来自分类Dev

在python中具有出现频率和星号的ASCII文本到ASCII数字转换器

来自分类Dev

如何在 Python 中将 unicode 字符(ASCII 10)转换为文本

来自分类Dev

Python中的ASCII转换

来自分类Dev

Unicode 到 ASCII

来自分类Dev

Python3返回意外的Unicode / ASCII

来自分类Dev

Unicode as String 无需转换 Python

来自分类Dev

Python到java的转换

来自分类Dev

VBA到Python的转换

来自分类Dev

Python到Swift的转换

来自分类Dev

Javascript Unicode转换为ASCII

来自分类Dev

到Ascii转换错误

来自分类Dev

Smalltalk Unicode 到 ascii 库

来自分类Dev

将输入文件转换为ASCII Python

来自分类Dev

在Unicode到ASCII转换后声明std :: string给出分段错误

来自分类Dev

Python:将Unicode转换为html实体

来自分类Dev

Python unicode转换使输入保持不变

来自分类Dev

在Python中将str转换为unicode

来自分类Dev

python将unicode转换为可读字符

来自分类Dev

python unicode数组以进行浮点转换

来自分类Dev

在Python中将文本转换为盲文(Unicode)

来自分类Dev

变量错误上的 Python Unicode 转换

来自分类Dev

在 Python 中将 unicode 转换为 devanagari

来自分类Dev

用Python从Unicode Web Scrape输出ascii文件

来自分类Dev

解析HTML时的Python Unicode和ASCII问题

来自分类Dev

在python中以非ASCII值连接unicode u