【问题标题】:Replacing Unicode character codes with characters in String in Java在Java中用String中的字符替换Unicode字符代码
【发布时间】:2011-09-15 01:21:08
【问题描述】:

我有一个这样的 Java 字符串:“peque\u00f1o”。请注意,它有一个嵌入的 Unicode 字符:'\u00f1'。

Java 中有没有一种方法可以将这些 Unicode 字符序列替换为实际字符?也就是说,如果您将“peque\u00f1o”作为输入,该方法将返回“pequeño”?

请注意,我有一个包含 12 个字符的字符串(我们看到的字符恰好在 ASCII 范围内)。

【问题讨论】:

  • a Java String like this "peque\u00f1o" 不清楚您是否有一个包含 12 个字符的字符串(我们看到的那些,恰好在 ascii 范围内)或使用该文字初始化的 Java 字符串(来源代码)(7 个 unicode 字符)。
  • 在第一种情况下,索林的回答 (StringEscapeUtils.unescapeJava) 适用。第二,霍华德的

标签: java string unicode


【解决方案1】:

我记得上周给出了同样的回复,使用org.apache.commons.lang.StringEscapeUtils。

【讨论】:

  • 哦 - 我可能误解了这个问题。
  • @Dilum:这个问题确实是模棱两可的。
【解决方案2】:

如果您有合适的字体,println 或在 JLabel 或 JTextArea 中设置字符串应该可以解决问题。转义仅适用于编译器。

如果您打算将可读字符串复制粘贴到源代码中,请记住还要选择合适的文件编码,例如 UTF8。

【讨论】:

    【解决方案3】:

    实际上字符串是“pequeño”。

    String s = "peque\u00f1o";
    System.out.println(s.length());
    System.out.println(s);
    

    产量

    7
    pequeño
    

    即七个字符和System.out 上的正确表示。

    【讨论】:

    • +1 进一步:尝试System.out.println("peque\u00f1o".equals("pequeño"));
    猜你喜欢
    • 1970-01-01
    • 2014-12-31
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 2018-07-02
    • 1970-01-01
    相关资源
    最近更新 更多