2

我有 json 值喜欢

\u092a\u093e\u0932\u094d\u092a\u093e\u0915\u093e \u092c\u0928\u094d\u0926\u0940\u0939\u0930\u0942 \u0915\u093e\u0930\u093e\u0917\u093e\u0930\u092d\u093f\u0924\u094d\u0930\u0948 \u0905\u0938\u0941\u0930\u0915

我们如何获取 String 或如何在 android 中对其进行解码并将其显示在文本视图中。

我对它执行了一些操作,但它显示了日志 ??????????????????????????????

有人能帮我吗。谢谢

4

3 回答 3

7

从这里的参考。你只需要 new String(bytes, charset) 和 String.getBytes(charset)..

试试下面的代码

 String data = "\u092a\u093e\u0932\u094d\u092a\u093e\u0915\u093e \u092c\u0928\u094d\u0926\u0940\u0939\u0930\u0942 \u0915\u093e\u0930\u093e\u0917\u093e\u0930\u092d\u093f\u0924\u094d\u0930\u0948 \u0905\u0938\u0941\u0930\u0915";
            byte[] bute = null;
            bute = data.getBytes();
            try {
                String asd= new String(bute, "UTF-8");

                System.out.println(asd);
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

我相信它会打印你想要的数据......

希望这可以帮助..

于 2013-07-03T13:34:19.087 回答
1

问题是您正在将加密数据转换为字符串。加密数据是二进制数据,而不是字符串数据。UTF-8 是具有特定编码格式的字符集。任意二进制数据不是有效的 UTF-8 数据。当您将加密数据转换为字符串时,“无效”字符很可能会被替换为 ? 无效字符。

如果要将任意二进制数据(也称为加密数据)转换为字符串,则需要使用一些binary->text转换,例如Base64.

于 2013-07-03T12:56:20.980 回答
-2

K 感谢朋友回复所有你给定的代码都可以在真实设备上工作,但它不能在模拟器上工作

我们不必在真实设备上显示文本,只需在您的文本视图中设置文本,它就可以正常工作。

tv1.setText(str);

于 2013-07-03T13:58:04.890 回答