在外观方面将非ASCII代码转换为等效的ASCII代码

时间:2014-03-24 01:41:35

标签: converter non-ascii-characters extended-ascii

我在mysql数据库中有数千个名称,其中包含扩展的ASCII代码。我想将它们转换为普通的英文字母。这是一个例子:

IndāpurJejūri转换为 - > Indapur Jejuri

那我怎么办呢?我知道Java和Groovy,以及许多其他脚本语言,但没有太多运气。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我在浏览stackoverflow中的很多帖子后找到了答案:Converting Symbols, Accent Letters to English Alphabet

import java.text.Normalizer;
import java.util.regex.Pattern;

public String deAccent(String str) {
    String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD); 
    Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
    return pattern.matcher(nfdNormalizedString).replaceAll("");
}