【问题标题】:Convert and Display the UTF8 Encoded String转换并显示 UTF8 编码字符串
【发布时间】:2013-06-22 07:40:17
【问题描述】:

我有一个 JSON 响应,我想将它存储在数据库中并在文本视图中显示或编辑文本。此 json 响应采用 UTF-8 格式编码。

响应有点像

 "currencies": [[0,"RUR"," ",1,0],[1,"EUR","â¬",1.44,100],[2,"GBP","£",1.6,100],[3,"JPY","Â¥",0.0125,100],[4,"AUD","$",1.1,100]]}

其中 â¬,£,Â¥ 是货币符号。我必须对此进行解码然后显示。此符号是 Unicode 中的符号(转换为 UTF8)。如何转换此编码符号。请帮忙。

我试过了,但没用:

byte[] b = stringSymbol.getBytes("UTF-8"); // â¬,£,Â¥
final String str = new String(b); 

【问题讨论】:

    标签: java android unicode nsstringencoding


    【解决方案1】:

    您正在显示带有非货币符号的 text...就好像您正在获取原始文本,然后将其编码为 UTF-8,然后 解码 em> 它是 ISO-8859-1。

    它只是文本 - 之后您不需要对其进行任何操作,并且您永远不应该以这种损坏的格式看到它。如果您必须将文本转换回字节然后再次转换为字符串,那意味着您基本上已经丢失了。

    检查返回 JSON 的 HTTP 响应的标头 - 我怀疑您会发现它声称数据是 ISO-8859-1 而不是 UTF-8。 实际 编码必须与标头中指定的编码匹配,否则您最终会得到这种效果。

    另一种可能性是,返回 JSON 的任何东西都准确地为您提供了 知道的数据,并且数据在上游被破坏了。您应该逐步跟踪数据(假设您拥有链中的所有链接),直到您可以看到您第一次遇到这种中断的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2020-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多