Java 转换并显示UTF8编码的字符串
我有一个JSON响应,我想将其存储在DB中,并显示在文本视图或编辑文本中。此json响应采用UTF-8格式编码 我的反应很糟糕Java 转换并显示UTF8编码的字符串,java,android,unicode,nsstringencoding,Java,Android,Unicode,Nsstringencoding,我有一个JSON响应,我想将其存储在DB中,并显示在文本视图或编辑文本中。此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)。如何
"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);
您正在使用非货币符号显示文本。。。这就好像你把原始文本编码成UTF-8,然后解码成ISO-8859-1
它只是一个文本,你不应该在事后对它做任何事情,你也不应该看到它的格式是这样的。如果您必须将文本转换回字节,然后再转换为字符串,这意味着您基本上已经丢失了
检查返回JSON的HTTP响应的标题-我怀疑您会发现它声称数据是ISO-8859-1而不是UTF-8。实际编码必须与头中指定的编码相匹配,否则会产生这种效果
另一种可能性是,返回JSON的任何东西都准确地提供了它所知道的数据,并且数据在上游被破坏。您应该一步一步地跟踪数据(假设您拥有链中的所有链接),直到您可以看到第一次遇到这种中断的位置。您正在显示带有非货币符号的文本。。。这就好像你把原始文本编码成UTF-8,然后解码成ISO-8859-1
它只是一个文本,你不应该在事后对它做任何事情,你也不应该看到它的格式是这样的。如果您必须将文本转换回字节,然后再转换为字符串,这意味着您基本上已经丢失了
检查返回JSON的HTTP响应的标题-我怀疑您会发现它声称数据是ISO-8859-1而不是UTF-8。实际编码必须与头中指定的编码相匹配,否则会产生这种效果
另一种可能性是,返回JSON的任何东西都准确地提供了它所知道的数据,并且数据在上游被破坏。您应该一步一步地跟踪数据(假设您拥有链中的所有链接),直到您可以看到第一次遇到这种中断的地方