从字符串中删除重音:java Normalizer

时间:2015-08-07 08:52:04

标签: java csv diacritics non-ascii-characters

我有一个包含一些法语单词(带重音符号)的CSV文件。我想使用Java读取此文件,并将重音字母转换为非重音字母。例如,é应该被理解为e。我尝试过以下方法:

CSVReader reader = new CSVReader(new FileReader(file));
String[] line;
while ((line = reader.readNext()) != null) {
      line[0] = Normalizer.normalize(line[0], Normalizer.Form.NFD)
                        .replaceAll("[^\\p{ASCII}]", "").replaceAll("[^a-zA-Z0-9:_']", "_");
      System.out.println("LINE[0]: "+line[0]);
}

如果假设,该文件包含“Arts_et_Métiers”行,则输出为“Arts_et_MAtiers”,其中重音字母由“A”而非“e”替换。有什么我做错了吗?任何帮助将不胜感激。

感谢。

0 个答案:

没有答案