【问题标题】:Convert utf-8 encode in to a String in android在android中将utf-8编码转换为字符串
【发布时间】:2013-07-01 04:05:44
【问题描述】:

我有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 中对其进行解码并将其显示在文本视图中。

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

有人可以帮助我吗? 谢谢

【问题讨论】:

    标签: android string utf-8


    【解决方案1】:

    来自参考 from here 。你只需要 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();
                }
    

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

    希望这会有所帮助..

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      【解决方案3】:

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

      我们不必在真实设备上显示文本,只需在您的文本视图中设置文本即可。

      tv1.setText(str);

      【讨论】:

        猜你喜欢
        • 2011-12-08
        • 2011-05-20
        • 1970-01-01
        • 1970-01-01
        • 2016-05-16
        • 1970-01-01
        • 2011-08-16
        • 2016-10-01
        相关资源
        最近更新 更多