【问题标题】:what is that encoding ( \u041e\u0434\u0440 ) and how to I get it back to normal?那是什么编码( \u041e\u0434\u0440 )以及如何让它恢复正常?
【发布时间】:2012-03-12 18:04:19
【问题描述】:

假设我有一个这样的字符串

"title": "\u041e\u0434\u0440\u0438\u043d\u044f-\u0423\u0440\u0431\u043e\u0432\u0430 ...

恢复正常的最佳方法是什么?

我试过了

byte[] b = stringBuilder.toString().getBytes();
String jstring = new String(b,"UTF-8");

但没有运气,它保持不变。

谢谢。

【问题讨论】:

    标签: java android encoding


    【解决方案1】:

    这些是 Unicode 转义序列。解码它们的最快方法(非编程方式)只需将它们粘贴到浏览器的控制台中,用引号括起来:

    "\u041e\u0434\u0440\u0438\u043d\u044f-\u0423\u0440\u0431\u043e\u0432\u0430"
    > "Одриня-Урбова"
    

    这里有几个答案展示了如何在 Java 中对它们进行解码,例如:

    【讨论】:

      【解决方案2】:

      这不是 UTF-8 编码的,这只是一个普通的字符串。在 Java 中,\uXXXX 是一个 Unicode 字符转义,表示给定代码点处的实际 Unicode 字符。

      所以,你的字符串正常的,它没有被编码。

      【讨论】:

      • 好的,但是如何在 androud/java 中将其转换为可读格式? :)
      • 就像使用其他字符串一样使用它。某些特定的东西不适合你吗?
      【解决方案3】:

      没试过,但是here你可能会找到一个有用的 unicode 转义字符串解析器。

      【讨论】:

        【解决方案4】:

        当您在屏幕上显示 unicode 字符时,它们会显示为 áéíóú 或类似的东西。我分阶段使用 php 使用 MySQL db 解析数据,因此在 php 文件中我将奇怪的字符 tu UTF-8 编码为类似你出现的字符串,然后当我在列表视图中显示数据时,字符出现了他们应该这样做。

        【讨论】:

          【解决方案5】:

          已经正常了:

          以下代码

          String str="\u041e\u0434\u0440\u0438\u043d\u044f-\u0423\u0440\u0431\u043e\u0432\u0430";    
          System.out.println(str);
          

          将打印出:Одриня-Урбова

          查看 JLS 参考:Unicode-Escapes

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-11-11
            • 2019-04-28
            • 2022-11-20
            相关资源
            最近更新 更多