跳转到主要内容

Unicode到8位字符集转写编解码器

项目描述

使用较小的编码字符集(ASCII、ISO 8859等)进行尽力而为的表示。编解码器使用的转换表来自Markus Kuhn的transtab集合。

提供了三种类型的转写编解码器

“长”,使用尽可能多的字符来制作自然

替换。例如,u00e4 LATIN SMALL LETTER A WITH DIAERESIS ä 将被替换为 ae

“短”,使用最少的字符来制作替换。例如,u00e4 LATIN SMALL LETTER A WITH DIAERESIS ä 将被替换为 a

“单一”,只执行单字符替换。无法用单字符转写的字符将保持不变。例如,u2639 WHITE FROWNING FACE 将保持不变。

使用编解码器很简单

>>> import translitcodec
>>> import codecs
>>> codecs.encode('fácil € ☺', 'translit/long')
'facil EUR :-)'
>>> codecs.encode('fácil € ☺', 'translit/short')
'facil E :-)'

编解码器默认返回Unicode。要返回字节字符串,可以将encode()的输出链接到另一个编解码器,或者将所需的字节编码名称附加到编解码器名称上。

>>> codecs.encode('fácil € ☺', 'translit/one').encode('ascii', 'replace')
'facil E ?'
>>> 'fácil € ☺'.encode('translit/one/ascii', 'replace')
'facil E ?'

该软件包还提供了一个“transliterate”编解码器,它是“translit/long”的别名。

使用库的另一种方法是使用错误处理。错误处理程序可用

  • ‘strict/translit/long’,‘strict/translit/short’,‘strict/translit/one’ - 类似于‘strict’

  • ‘ignore/translit/long’,‘ignore/translit/short’,‘ignore/translit/one’ - 类似于‘ignore’

  • ‘replace/translit/long’,‘replace/translit/short’,‘replace/translit/one’ - 类似于‘replace’

上述错误处理程序的工作方式与Python内置的错误处理程序类似。区别在于首先尝试转写。

>>> codecs.encode('Zażółć gęślą jaźń € ☺另!@#', 'ISO-8859-2', 'replace/translit/long').decode('ISO-8859-2')
'Zażółć gęślą jaźń EUR :-)?!@#'
>>> codecs.encode('Zażółć gęślą jaźń € ☺另!@#', 'ISO-8859-2', 'replace/translit/short').decode('ISO-8859-2')
'Zażółć gęślą jaźń E :-)?!@#'
>>> codecs.encode('Zażółć gęślą jaźń € ☺另!@#', 'ISO-8859-2', 'replace/translit/one').decode('ISO-8859-2')
'Zażółć gęślą jaźń E ??!@#'
>>> codecs.encode('Zażółć gęślą jaźń € ☺另!@#', 'ISO-8859-2', 'ignore/translit/long').decode('ISO-8859-2')
'Zażółć gęślą jaźń EUR :-)!@#'
>>> codecs.encode('Zażółć gęślą jaźń € ☺另!@#', 'ISO-8859-2', 'ignore/translit/short').decode('ISO-8859-2')
'Zażółć gęślą jaźń E :-)!@#'
>>> codecs.encode('Zażółć gęślą jaźń € ☺另!@#', 'ISO-8859-2', 'ignore/translit/one').decode('ISO-8859-2')
'Zażółć gęślą jaźń E !@#'

translitcodec 更新

0.7.0

发布于2021年5月8日

  • 添加了对错误处理的支持

  • 修复了德语eszett字符的转换

0.6.0

发布于2020年12月13日

  • 添加了对Python 3.9的支持

0.5.2

发布于2020年1月19日

  • 使用setuptools安装软件包

0.5.1

发布于2020年1月19日

  • 添加python_requires以防止与Python 2软件包一起安装

0.5

发布于2020年1月18日

  • 完全覆盖越南字母表

  • 移除了对Python 2的支持

0.4

发布于2015年5月11日

  • 添加了Python 3兼容性

0.3

发布于2011年2月14日

  • 对transtab表重建工具的修复。

  • 添加了translitcodec.__version__

0.2

发布于2011年1月27日

  • 解决了编码空白值(例如:N{ZERO WIDTH SPACE} u200B)时出现的“TypeError:字符映射必须返回整数、None或unicode”问题。现在返回Unicode空白。

  • ASCII范围内的字符不再包含在翻译表中。

0.1

发布于2008年12月28日

  • 初始打包发布。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源分布

translitcodec-0.7.0.tar.gz (52.4 kB 查看哈希)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面