Python-Unicode到ASCII转换

Python-Unicode到ASCII转换,第1张

Python-Unicode到ASCII转换

Unipre字符,

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

>>> print s.enpre('ascii', errors='backslashreplace')ABRAxc3O JOSxc9>>> print s.enpre('ascii', errors='xmlcharrefreplace')ABRAÃO JOSÉ>>> print s.enpre('unipre-escape')ABRAxc3O JOSxc9>>> print s.enpre('punypre')ABRAO JOS-jta5e

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

depre('ascii')

有关更多信息,请参见

str.enpre
,Python专用编码和Unipre
HOWTO


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

>>> s.enpre('utf-8')'ABRAxc3x83O JOSxc3x89'>>> s.enpre('cp1252')'ABRAxc3O JOSxc9'>>> s.enpre('iso-8859-15')'ABRAxc3O JOSxc9'

困难的部分是要知道您要使用的字符集。如果您要编写生成8位字符串的代码和使用它的代码,而又没有更好的了解,则表示UTF-8。例如,如果使用8位字符串的代码是

open
您正在向其提供页面的函数或Web浏览器或其他内容,则情况会更加复杂,并且没有很多信息就没有简单的答案。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5644056.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存