【问题标题】:Get Character Representation of a Unicode value In Java在Java中获取Unicode值的字符表示
【发布时间】:2013-01-07 23:20:06
【问题描述】:

我想要 Java 中 Unicode 值的字符表示。 这个可以吗?

XML 不支持某些字符(例如 unicode 值为 \u001b 的字符)。因此,我通过输入 Unicode 值 '\u001b' 在 XML 中转义它们,并且在解组后,我希望显示 \u001b 的字符表示。 这可以用 Java 完成吗?

欢迎提出建议。

【问题讨论】:

  • Integer.toString(字符, 16)
  • Unicode 值 '\u001b' 是一个字符串。并且上述参数中的字符接受一个 int 对象。我们如何做到这一点?
  • ups 这是相反的方式......这个值无法显示它是一个转义字符fileformat.info/info/unicode/char/1b/index.htm
  • 所以,在运行时我无法使用其 Unicode 值获取字符的字符表示?

标签: java xml unicode unicode-escapes


【解决方案1】:

试试这个

    String s = "\\u0031";
    char c = (char)Integer.parseInt(s.substring(2), 16);
    System.out.print(c);

输出

1

虽然我建议使用 XML 数字字符引用 http://en.wikipedia.org/wiki/Numeric_character_reference 这样它会被 XML 解析器自动解码

【讨论】:

    【解决方案2】:
     String fileName = "outputFile.txt";
     String str = "String with unicode" ;
    
    try {
        FileOutputStream fos = new FileOutputStream(fileName);
        Writer out = new OutputStreamWriter(fos, "UTF8");
        out.write(str);
        out.close();
    } catch (IOException e) {
        e.printStackTrace(System.err);
    }
    

    应该这样做

    【讨论】:

    • 嗨 Nigul,这个文件是在哪里生成的?
    • 在项目根目录中。您当然可以使用您希望在其中生成的任何绝对路径将 File 对象传递给 FileOutputStream ;)
    • 在根文件夹中找不到它:( 也尝试在变量 fileName 中提供绝对路径。没有用。它对你有用吗?
    • 尽量不要将文件名作为字符串,而是作为 java.io.File
    • 是的,确实如此。也许在您的机器上进行搜索。这是一个标准的java文件生成
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    相关资源
    最近更新 更多