我正在将一些外部XML解析为一个对象并在textview中显示它。
撇号/单引号正被转换为这些愚蠢的问号符号。
我发现没有任何工作 - 我尝试过使用replaceall并用\'转发它,它没有给我所需的结果。
我尝试使用以下方式设置textview:
tv.setText(Html.fromHtml(news_item.getTitle()));
它似乎不起作用,我找不到任何其他解决方案,你的想法赞赏。
答案 0 :(得分:2)
答案 1 :(得分:1)
发现它!
您正在寻找的标记称为RIGHT SINGLE QUOTATION MARK
,其unicode代码为U + 2019。应通过以下方式替换此特定标记:
String.replace("’", "’");
正确显示。
如果这不起作用,您应该通过以下方式从该标记替换为撇号:
String.replace("’", "'");
或直接:
String.replace("’", "'");
确保显示实际显示它。
关闭右单引号与撇号之间的区别:
答案 2 :(得分:0)
记录的解决方案将起作用,但我认为这不是解决此问题的正确方法。问题的根本原因是编码。在您的情况下,源的(XML文档)编码很可能是UTF-8或其他一些多字节编码。您的数据解析器或使用者很可能是ISO-8859-1或ASCII。这些字符(左右撇号)不是该字符集的一部分。因此,正确的解决方案是将解析器/处理器/消费者的编码更改为UTF-8。
如果不是这种情况,则可能相反。您有一个用UTF-8写下字符的过程,但是XML的编码不兼容(即ISO-8859-1)。
请记住:ISO-8859-1中的所有字符都以UTF-8映射,但并非相反。因此,从ISO-8859-1转换为UTF-8并不是问题。问题是当您必须往返于ISO-8859-1和UTF-8时。转换UTF-8字符时,那些不在ISO字符集中的字符将在您的显示器上显示为滑稽。作为问号或“’