如何在TextView中显示特殊字符(如 - )?

时间:2012-02-22 18:44:07

标签: android textview

如何在TextView中显示特殊字符(如– ")?

4 个答案:

答案 0 :(得分:14)

您可以使用Html.fromHtml()将HTML格式的文字处理为Spannable可以显示的TextView

答案 1 :(得分:6)

如果您知道Unicode值,则可以显示任何UTF-8字符。例如,“您将拥有&\#0034;

有关详细信息,请参阅 Unicode Characters (位于 Code Table )。

答案 2 :(得分:2)

我已经实施了这个解决方案。

活动类:

textView.setText( getString(R.string.author_quote, "To be or not to be", "Shakespeare") )

的strings.xml:

<string name="author_quote">&#171; %1$s &#187; - %2$s</string>

HTML字符直接写在strings.xml中,不需要额外的Html.fromHtml()。它适用于我的所有设备。

答案 3 :(得分:0)

我编写了一个自定义方法,将所有unicode从hexa转换为整数并替换为实际字符串。 因此,文本视图可以读取为unicode。 看看,这将解决你的问题...

public String unecodeStr(String escapedString){

    try {
        String str;
        int from = 0;
        int index = escapedString.indexOf("\\u", 0);
        while (index > -1) {
            str = escapedString.substring(index, index + 6).replace("\\u", "");
            try {
                Integer iI = Integer.parseInt(str, 16);
                char[] chaCha = Character.toChars(iI);
                escapedString = escapedString.replaceFirst(str, String.valueOf(chaCha));
            } catch (Exception e) {
                CustomLog.e("error:", e.getMessage());
            }
            from = index + 3;
            index = escapedString.indexOf("\\u", from);
        }

        escapedString = escapedString.replace("\\u", "");
    } catch (Exception e) {
        CustomLog.info("warnning", "emoji parsing error at " + escapedString);
    }

    return escapedString;
}