有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java中将Ascii转换为Unicode?

我有一个字符串是半码字体,我想把它转换成全码。我试图使用这个代码

final String x = "01589846";
    String b = "";
    System.out.print("01589846");
    int y = 0;
    final char[] list = x.toCharArray();
    for (int i = 0; i < list.length; i++) {
        y = Integer.parseInt(String.valueOf(list[i]));
        final char unicode = (char) (y + 65296);
        b += unicode;

    }
    System.out.println(b);
}

它实际上在工作,但它只与数字有关。 有人有别的办法吗?请帮帮我


共 (1) 个答案

  1. # 1 楼答案

    Java字符串是Unicode。他们不需要转化。Java本机不使用ASCII

    显然,您希望将一组Unicode字符映射到另一组。适当的工具是映射,但您必须使用从Unicode code charts中获取的所需转换填充映射

    对于特定的子范围,可能有一些算法方法可以做到这一点;你似乎发现了一种适用于(西方)数字的方法。请注意,全宽数字占用代码点0xFF10到0xFF19,因此转换公式为digit - '0' + 0xff10。0xFF10是65296十进制,但十六进制更清晰,因为它在已发布的代码图表中使用

    事实上,在我看来,同样的事情适用于范围空间到“~”的所有字符,可能是出于设计。因此

    for (int i=0; i<list.length; i++)
       list[i] += 0xff00 - ' ';
    

    这里,我只是假设list只包含从空格到“~”范围内的字符,即对应于图形(可打印)ASCII字符的Unicode范围。与其他角色打交道,比如片假名,则更为复杂