给定一个Unicode字符串,我想用生成它们的乳胶代码替换非ASCII字符(例如,让é
变为\'e
和œ
变为\oe
)。我正在将它合并到一个Python代码中。这应该依赖于一个翻译表,我已经想出了下面的代码,它很简单,而且似乎工作得很好:
accents = [
[ u"à", "\\`a"],
[ u"é", "\\'e"]
]
translation_table = dict([(ord(k), unicode(v)) for k, v in accents])
print u"été à l'eau".translate(translation_table)
但是,写一个相当完整的翻译表需要很长时间,而谷歌没有太多帮助。有没有人准备好这样的东西,或者知道在哪里可以找到?
PS:我对python不熟悉,所以我当然欢迎对上面的代码进行评论。
最佳答案
下载(大约1MB)。您可以找到等效字符组合的关系表,例如,é = \u00E9
ise+ ́
相当于\u0065+\u0301 (LATIN SMALL LETTER E
+COMBINING ACUTE ACCENT)
。您可以编写简单的代码来转换所有脚本的所有组合字符,或者只需要它们(您可以通过数据库中的脚本字段进行控制)。
然后用乳胶代码替换这些组合。例如,使用正则表达式\w\u0065
替换diatrics:\'<the_letter>
。(我不确定语法。这取决于您的编程语言和正则表达式引擎。)
编辑:
如果您使用的是python,那么您已经有了数据库和使用它的处理程序的实现。正如下面评论中提到的,import unicodedata
。
关于python - 用LaTeX等效替换所有重音字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4578912/