二进制字符串(11110010)到char - Java

时间:2014-11-15 16:49:27

标签: java

我有一个“”二进制“”字符串String s1 = "10011000",想要打印此字节的相应字符(Ф),我该如何制作?

我已阅读并测试了如此多的解决方案和教程......并且找不到我想要的内容!此外,我认为存在编码问题。

例如,这段代码不起作用,但为什么(输出中有“?”,编码问题?)?

int j = Integer.parseInt("10011000", 2);    
System.out.println(new Character ((char)j));

3 个答案:

答案 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);