在TextView和Spinner控件

时间:2016-11-21 15:39:43

标签: android textview android-spinner diacritics

我有一个人名列表,这些名字最初来自Windows系统上的数据库。它将通过网络传输到我的Android应用程序中。

我的问题是有些名字包含重音字符。例如,一个名称包含具有强烈重音的o。

我需要能够在textView和Spinner控件中显示这些名称及其重音符号。在我的第一个版本中,我什么也没做,重音字符显示为包含问号的黑色钻石。然后我尝试将所有重音字母转换为HTML转义版本,例如用& oacute;替换o acute。我曾希望这会被转换回Android端的正确重音字符,但事实并非如此。字符串& oacute;出现在我的Android应用控件中。

有没有简单的方法可以在我的Android应用中显示可能包含重音的字符串,并正确显示这些重音?请注意,我可以控制Windows端和Android端,因此我可以根据需要修改从Windows发送到Android的XML文件的格式。如果可以避免,我宁愿不要修补字体。

2 个答案:

答案 0 :(得分:0)

我刚试过textView.setText("ó"),我没有看到任何问题。

您可以尝试以下测试:

try {
    byte[] strByte = "ó".getBytes("UTF-8");
    String myStr = new String(strByte, "UTF-8");
    textView.setText(myStr);
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

这对我也有用。

答案 1 :(得分:0)

抱歉,我刚刚看到了回复。我认为当响应进来时,StackOverflow会通过电子邮件提醒我。 我设法使用& oacute来解决问题;并设置textView如下:

    target.setText(Html.fromHtml(newText), TextView.BufferType.SPANNABLE);

我认为,设置文字是否取决于所使用的字体。原始字符串来自Windows PC,所以我想知道它是否使用不同的编码。无论如何,& oacute;如上所述工作,所以我现在很开心。 再次感谢您的关注。