Android 应用程序:服务器内容的错误字符集
Android application: wrong charset of server content
我们应用程序的一位用户说,由于符号字符集错误,他无法阅读新闻评论。他有Galaxy Ace Duos (GT-S6802) 并截图:
没有其他人抱怨这个错误。可能是什么问题?
应用程序从服务器 API 加载评论 (UTF-8)。每个评论的文本具有 html 格式(包含图像),因此以这种方式放置在 WebView 中:
holder.text.loadData(text, "text/html; charset=UTF-8", "utf-8");
Play 市场上的应用:https://play.google.com/store/apps/details?id=kz.sportlive
我解决了我的问题。但在此之前,我尝试在服务器上将评论文本编码为 Base64 并在应用程序上对其进行解码 - 没有用。
然后我尝试在 WebView 中加载编码文本:
webview.loadData(comment.text_base64, "text/html; charset=UTF-8", "base64");
也没用。
最后我这样试了:
webview.getSettings().setDefaultTextEncodingName("utf-8");
webview.loadData(comment.text, "text/html; charset=utf-8", null);
而且效果很好!
在类似情况下使用它
我们应用程序的一位用户说,由于符号字符集错误,他无法阅读新闻评论。他有Galaxy Ace Duos (GT-S6802) 并截图:
没有其他人抱怨这个错误。可能是什么问题?
应用程序从服务器 API 加载评论 (UTF-8)。每个评论的文本具有 html 格式(包含图像),因此以这种方式放置在 WebView 中:
holder.text.loadData(text, "text/html; charset=UTF-8", "utf-8");
Play 市场上的应用:https://play.google.com/store/apps/details?id=kz.sportlive
我解决了我的问题。但在此之前,我尝试在服务器上将评论文本编码为 Base64 并在应用程序上对其进行解码 - 没有用。
然后我尝试在 WebView 中加载编码文本:
webview.loadData(comment.text_base64, "text/html; charset=UTF-8", "base64");
也没用。
最后我这样试了:
webview.getSettings().setDefaultTextEncodingName("utf-8");
webview.loadData(comment.text, "text/html; charset=utf-8", null);
而且效果很好! 在类似情况下使用它