如何在Java中进行转换?â,â,â,â€?

时间:2016-06-18 10:22:55

标签: java android string

我使用Textview显示巨大的String数组。这个String数组包含一些匿名字符,比如“—,“â”,“â”,“â”,“等等。但它在英语中没有任何意义,请帮我解释这些字符的实际含义。

我已经使用过UTF-8编码,但无法正常工作。

private final static Charset UTF8_CHARSET = Charset.forName("UTF-8");

public static String getUTF8Encoded(String targetString) {
    String resultant = "";
    try {
        return new String(encodeUTF8(targetString), UTF8_CHARSET);
    } catch (Exception e) {
        e.printStackTrace();
        return resultant;
    }
}

private static final byte[] encodeUTF8(String string) {
    return string.getBytes(UTF8_CHARSET);
}

2 个答案:

答案 0 :(得分:1)

相反:

Charset.forName("UTF-8");

试试这个:

Charset.forName("windows-1252");

答案 1 :(得分:-1)

您可以使用Apache Commons Lang

org.apache.commons.lang3.StringUtils.stripAccents("Añ");

返回An

另一种解决方案:

此函数将所有重音字符转换为deAccented对应字符,然后将它们组合为变音符号。现在你可以使用正则表达式去除变音符号。

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("");
}