我有一个像“Previously”这样的文字,它看起来像英文,但里面有非ASCII字符:
将它转换为英文文本的最简单方法是什么(例如,“P”将是拉丁大写字母P?)
为简单起见,我们假设非英语字符是俄语。 但是,非常感谢更通用的解决方案!
优选语言:Javascript,Ruby,Bash脚本。
答案 0 :(得分:3)
尽管一些西里尔字母(和希腊字母)字母与图形外观中的某些拉丁字母相同(即,任何包含两者的字体可能没有差异),但它们之间没有定义正式映射。因此,您需要自己定义映射。对于俄语来说,这样的字母数量相当有限,所以这是一个小的映射表。但是如果你想覆盖所有的Unicode,那么就会有大量的相似内容和几乎相似的内容,所以很难确定哪些字符足够相似。
答案 1 :(得分:1)
如果要转换的字符数很少(例如俄语字母),那么将输入字符映射到输出字符的简单字典就足够了。
只需循环遍历字符串,并查看每个字符是否在字典中,如果是,则将其替换为字典中存储的替换字符。
答案 2 :(得分:0)
我建议使用Unicode软件包,它将希腊和西里尔字母映射到最接近的ascii符号,并删除所有变音符号:
unidecode('Lillı Celiné Никита Ödipus');
'Lilli Celine Nikita Odipus'