【问题标题】:Print unicode literal string as Unicode character将 unicode 文字字符串打印为 Unicode 字符
【发布时间】:2014-08-23 21:58:12
【问题描述】:

我需要将 unicode 文字字符串打印为等效的 unicode 字符。

System.out.println("\u00A5"); // prints  ¥

System.out.println("\\u"+"00A5"); //prints \u0045  I need to print it as ¥ 

如何将此字符串评估为 unicode 字符?

【问题讨论】:

  • 不确定我是否理解您的问题...第一个选项已经打印了您想要的内容,不是吗?
  • 我猜 op 想在 livetime 期间动态创建 Unicode。
  • 如果有人只想打印“\u”怎么办?您实际上在寻找字符串解析器吗?你总是可以使用 Rhino 的。

标签: java unicode-string unicode-escapes unicode-literals


【解决方案1】:

作为此处其他选项的替代方案,您可以使用:

int codepoint = 0x00A5; // Generate this however you want, maybe with Integer.parseInt
String s = String.valueOf(Character.toChars(codepoint));

与其他提议的技术相比,这将具有优势,因为它还可以与基本多语言平面之外的 Unicode 代码点一起使用。

【讨论】:

    【解决方案2】:

    如果你有一个字符串:

    System.out.println((char)(Integer.parseInt("00A5",16)));
    

    可能有效(尚未测试)

    【讨论】:

    • 如果您想要高代码点支持,您可以结合使用这个答案(用于整数解析)和 msandiford 的答案...
    【解决方案3】:

    将其转换为字符。

    System.out.println((char) 0x00A5);
    

    这当然不适用于非常高的代码点,可能需要 2 个“字符”。

    【讨论】:

      猜你喜欢
      • 2010-11-27
      • 1970-01-01
      • 2019-04-26
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      • 2015-11-16
      相关资源
      最近更新 更多