当前位置:  开发笔记 > 编程语言 > 正文

如何使用Python将文件格式从Unicode转换为ASCII?

如何解决《如何使用Python将文件格式从Unicode转换为ASCII?》经验,为你挑选了2个好方法。

我使用第三方工具输出Unicode格式的文件.但是,我更喜欢它是ASCII.该工具没有更改文件格式的设置.

使用Python转换整个文件格式的最佳方法是什么?



1> ConroyP..:

只需使用该unicode函数就可以轻松地转换文件,但是你会遇到没有直接ASCII等效的Unicode字符问题.

这篇博客推荐使用该unicodedata 模块,该模块似乎可以在没有直接对应的ASCII值的情况下粗略地转换字符,例如

>>> title = u"Klüft skräms inför på fédéral électoral große"

通常转换为

Klft skrms infr p fdral lectoral groe

这是非常错误的.但是,使用该unicodedata模块,结果可以更接近原始文本:

>>> import unicodedata
>>> unicodedata.normalize('NFKD', title).encode('ascii','ignore')
'Kluft skrams infor pa federal electoral groe'



2> Pete Karl II..:

我认为这是一个比你意识到的更深层次的问题.简单地将文件从Unicode更改为ASCII很容易,但是,将所有Unicode字符转换为合理的ASCII字符(两种编码中都没有多个字母)是另一种.

这个Python Unicode教程可以让您更好地了解转换为ASCII的Unicode字符串会发生什么:http://www.reportlab.com/i18n/python_unicode_tutorial.html

以下是该网站的有用引用:

Python 1.6还获得了一个"unicode"内置函数,您可以在其中指定编码:

> >>> unicode('hello') u'hello'
> >>> unicode('hello', 'ascii') u'hello'
> >>> unicode('hello', 'iso-8859-1') u'hello'
> >>>

所有这三个都返回相同的东西,因为'Hello'中的字符对于所有三种编码都是通用的.

现在让我们编码带有欧洲口音的东西,它不在ASCII之内.您在控制台上看到的内容可能取决于您的操作系统区域设置; Windows允许我输入ISO-Latin-1.

> >>> a = unicode('André','latin-1')
> >>> a u'Andr\202'

如果你不能输入急性字母e,你可以输入字符串'Andr\202',这是明确的.

Unicode支持所有常见操作,例如迭代和拆分.我们不会在这里碾压它们.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有