2012-01-15 25 views
1

我有一个文本,如“以前”,这看起来英语,但在它的非ASCII字符:如何将看起来像英文的Unicode文本转换为ASCII?

enter image description here

什么将其转换为英文文本的最简单的方法(使“P”例如,拉丁大写字母P)?

为简单起见,我们假设非英语字符是俄语。 但是,更通用的解决方案将不胜感激!

优先语言:Javascript,Ruby,Bash脚本。

+0

你是否试图仅基于类似于不同字母的字母的视觉效果来转换单词? – toddsundsted 2012-01-15 23:04:53

+0

是的,这是我想要做的。 – 2012-01-15 23:36:17

回答

3

尽管一些西里尔(和希腊)字母与图形外观一些拉丁字母相同(即,有可能是在同时包含任何字体没有区别),在它们之间限定没有正式的映射。因此,您需要自己定义映射。对于俄罗斯人来说,这类信件的数量相当有限,所以这将是一个小型的映射表。但是如果你希望覆盖所有的Unicode,那么就有很多的lookalikes和几乎相同的lookup,所以最难的部分是决定哪些字符足够相似。

1

如果要转换的字符数是小的(例如俄文字母),则一个简单的字典映射输入字符的输出字符就足够了。

只需通过串并为每个字符循环看,如果它在字典中,如果是,存储在字典中的替换字符替换它。