如何在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 楼答案
Java字符串是Unicode。他们不需要转化。Java本机不使用ASCII
显然,您希望将一组Unicode字符映射到另一组。适当的工具是映射,但您必须使用从Unicode code charts中获取的所需转换填充映射
对于特定的子范围,可能有一些算法方法可以做到这一点;你似乎发现了一种适用于(西方)数字的方法。请注意,全宽数字占用代码点0xFF10到0xFF19,因此转换公式为
digit - '0' + 0xff10
。0xFF10是65296十进制,但十六进制更清晰,因为它在已发布的代码图表中使用事实上,在我看来,同样的事情适用于范围空间到“~”的所有字符,可能是出于设计。因此
这里,我只是假设
list
只包含从空格到“~”范围内的字符,即对应于图形(可打印)ASCII字符的Unicode范围。与其他角色打交道,比如片假名,则更为复杂