【问题标题】:Encoding JSON to support UTF-8 characters in an android app在 Android 应用程序中编码 JSON 以支持 UTF-8 字符
【发布时间】:2013-10-11 12:54:36
【问题描述】:

我试图在我的 android 应用程序中的 ListView 中显示 utf-8 字符,但出现的是一系列问号??????这是输出的样子:

[{"ImageID":"1","ItemID":"Item1","ItemID_AM":"????
???","ImagePath":"http:\/\/10.0.2.2\/android\/Pagination\/pics\/pic_a.png"},{"ImageID":"2","ItemID":"Item2","ItemID_AM":"????
????","ImagePath":"http:\/\/10.0.2.2\/android\/Pagination\/pics\/pic_b.png"},...

我已经用过:header('content-type: application/json; charset=utf-8'); 但什么都没有改变。有人可以帮忙吗?

谢谢。

【问题讨论】:

  • 您的列表视图是否真的显示 JSON?或者这是您在问题中显示的 JSON 输入?请使用 fiddler 或类似工具来捕获传输的 JSON 数据并将其添加到您的问题中。请添加请求数据和解析 JSON 的代码。
  • 您能否尝试在您的 textView 中显示完整的 JSON,您的 JSON 可能不是正确的“utf-8”编码。如果您的数据来自数据库,请尝试以下操作:mysql_set_charset('utf8',$dbLink);
  • 我有一个数据库,我使用php将结果转换为json格式,然后我希望它显示在我的android ListView中。
  • 所以清单应该如下所示: 1.) TEXT/VARCHAR = utf-8 的字符集? 2. mysql_set_charset('utf8',$dbLink); ? 3. php-code保存为utf8字符集
  • 但是在mysql数据库中所有字符都正确显示,但是当我在json中浏览时,问号“????”出现。所以问号也显示在我的android ListView中,因为那是它从json中得到的。

标签: android json utf-8 character-encoding


【解决方案1】:

Java 字符串使用 Unicode,而 JSON 字符串是 UTF-8 编码的。很可能,您必须将 UTF-8 JSON 转换为 Unicode。

搜索:java string utf8,例如How to convert Strings to and from UTF8 byte arrays in Java

不过,最简单的方法是让适当的 JSON 库进行解码。也许org.json - Android 或How to parse JSON in Android 有帮助。

更新:

也许一切都很好,只是字体无法显示所需的字符。如果是这种情况,解决问题的方法是安装合适的字体。

【讨论】:

猜你喜欢
  • 2021-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多