【发布时间】:2012-06-28 15:58:42
【问题描述】:
一些 Unicode 字符也可以写成两个 ASCII 字母(例如:ß -> ss、å -> aa)。有没有什么方法可以在 Python 中转换这些,而无需列出所有这些?
稍后编辑:
这种转换是由许多网站完成的,包括 *(此页面的 URL 已转换)和 Twitter。我很好奇他们是怎么做到的。
【问题讨论】:
-
由于这些转换的规则因文化和上下文而异(ß -> ss 并不总是合法的,有时 ß -> sz 更合适),它可能不是默认值模块。
-
å -> aa 可能是也可能不是有效的转换,具体取决于语言环境
-
@STATUS 作为奥地利人,我想不出一个单词可以用 sz 代替 ss 来代替 ß。我认为“新”拼写改革可能与此有关,我确实经常在旧书中看到这一点。或者我现在只是缺少所有示例;)
-
@Voo:我认为您缺少单词 - 简单地说 - 如果您执行 ß -> ss,则非常模棱两可。示例:Maße -> Masse。把它写成 Masze 可以让意思很明显,即使它看起来“奇怪”:) ...如果你没有上下文(即这个词单独出现在表格标题而不是句子中,这将导致混乱)。类似的推理可以应用于一些全大写的单词。
-
@Voo:同意。但是再举一个例子:一些有 ö 的文化会将其转换为 oe,而另一些则简单地转换为 o。现在机器不太擅长这种猜测工作。所以你可以根据文化来接近(尤其是如果你知道它),但没有通用的解决方案。