我有一个“”二进制“”字符串String s1 = "10011000"
,想要打印此字节的相应字符(Ф),我该如何制作?
我已阅读并测试了如此多的解决方案和教程......并且找不到我想要的内容!此外,我认为存在编码问题。
例如,这段代码不起作用,但为什么(输出中有“?”,编码问题?)?
int j = Integer.parseInt("10011000", 2);
System.out.println(new Character ((char)j));
答案 0 :(得分:1)
10011000
是unicode代码点152
,它是一个扩展的unicode字符,只有在控制台支持其编码时才会出现
答案 1 :(得分:1)
字符Ф是西里尔字母大写字母;在Unicode中,十六进制值为\ u0424。您尝试解析的二进制字符串是152十进制。 \ u0424的二进制字符串是010000100100(十进制1060),所以我先修复它。正如其他人所指出的,在您的环境字符集支持Unicode输出之前,Java将替换为“?”当前字符集不支持的任何字符的字符。有关将Eclipse控制台设置为Unicode的信息,请参阅Unicode characters in Eclipse。
答案 2 :(得分:0)
您使用了错误的代码。如果您想在输出Ф中看到,您需要将代码更改为:
int j = Integer.parseInt("10000100100", 2);
System.out.println((char) j);