java - 如何删除从 Web 服务返回的无法识别的字符?

标签 java xml android parsing encoding

我正在开发一个调用休息网络服务的应用程序。有时 xml 响应包含手机无法显示的字符。显示这些字符时,会显示一个空框。我想过滤掉这些字符。如何检测字符是否能够显示在屏幕上?

一些特定的字符包括:

http://www.fileformat.info/info/unicode/char/0094/index.htm http://www.fileformat.info/info/unicode/char/0080/index.htm http://www.fileformat.info/info/unicode/char/0092/index.htm

最佳答案

Android 支持以下 encodings

  • Xml.编码 ISO_8859_1
  • Xml.Encoding US_ASCII
  • Xml.Encoding UTF_16
  • Xml.Encoding UTF_8

US_ASCII 应该不会有任何问题。

对于 ISO_8859_1,您应该检查 wiki 对于控制字符 0x00-0x1f 和 0x7f-0x9f 并过滤它们。 当然还要使用匹配的字体。

使用 UTF_8 或 16 更复杂,阅读 Joels The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets

您可能会发现此邮件 list有用。

关于java - 如何删除从 Web 服务返回的无法识别的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2650259/

相关文章:

Java:HttpResponse header 从来没有 "Content-Encoding",但确实有 "Vary: Accept-Encoding"

java - 泛型编译错误

java - 不确定如何理解 logcat 告诉我的错误

Android:如何获取当前的 Wifi 加密?

java - 如何以相反的顺序对 IntStream 进行排序

java - 关于创建类数组的困惑

C#:xml CData 中的字节数组

xml - 使用scala解析xml文件

java - Firebase 在 Release模式下找不到要序列化的对象的属性

android - ionic : Share specific page via social media