如何在TextView中显示特殊字符(如– "
)?
答案 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">« %1$s » - %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;
}