2012-01-15 30 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

如果要轉換的字符數是小的(例如俄文字母),則一個簡單的字典映射輸入字符的輸出字符就足夠了。

只需通過串併爲每個字符循環看,如果它在字典中,如果是,存儲在字典中的替換字符替換它。