将Java字符串转换为ascii

时间:2010-09-14 10:23:05

标签: java ascii

我需要将包含某些特定语言字母(如HÄSTDJUR - noteÄ)的String转换为String,而不包含这些特殊字母(在本例中为HASTDJUR)。我怎么能用Java做呢?谢谢你的帮助!


这听起来并不是真的。方案如下 - 您想要使用该应用程序,但没有瑞典语键盘。因此,不是查看字符映射,而是使用拉丁字母表中的典型字母替换特殊字母来键入字符映射。

2 个答案:

答案 0 :(得分:49)

我认为您的问题与此问题相同:

Java - getting rid of accents and converting them to regular letters

因此答案也是一样的:

解决方案

String convertedString = 
       Normalizer
           .normalize(input, Normalizer.Form.NFD)
           .replaceAll("[^\\p{ASCII}]", "");

参考

示例代码:

final String input = "Tĥïŝ ĩš â fůňķŷ Šťŕĭńġ";
System.out.println(
    Normalizer
        .normalize(input, Normalizer.Form.NFD)
        .replaceAll("[^\\p{ASCII}]", "")
);

<强>输出:

  

这是一个时髦的字符串

答案 1 :(得分:2)

我建议将特殊字符映射到你想要的字符。

Ä --> A
é --> e
A --> A (exactly the same)
etc...

然后你可以调用你的文本映射(伪代码):

for letter in string:
   newString += map(letter)

实际上,您需要为哪些字符映射到ASCII等效项创建一组规则。

相关问题