gpt4 book ai didi

java - 为什么字符在128数字后不能打印

转载 作者:行者123 更新时间:2023-11-29 06:53:45 26 4
gpt4 key购买 nike

在我的项目中,我尝试将二进制数转换为整数并将整数转换为字符。但是在 128 号之后只打印'?'特点。请帮助我如何最多打印 250 个字符。我的代码是

 class b 
{
public static void main(String[] args)
{
String dec1="11011001" ;

System.out.println(dec1);
int dec = Integer.parseInt(dec1, 2);
System.out.println(dec);
String str = new Character((char)dec).toString();
System.out.println("decrypted number is "+str);
}
}

谢谢。

最佳答案

并不是所有的字节值都有与之关联的可打印字符,ASCII 没有,许多/大多数 unicode 字节没有,范围 0x00 - 0x1f 都是不可打印的控件,例如 DC1、Bell、Backspace 等。Unicode 具有相同的前 32 个字符保留为不可打印。

127(0x7f)以上的字节值在不同的编码中有不同的含义,有很多种编码。历史上 ASCII 是默认编码,并且有许多扩展。如今,标准是 unicode,它以多种形式存在,包括 UTF-8、UTF-16(LE、BE 和 BOM)和 UTF-32(LE、BE 和 BOM)。 UTF8 通常用于交换,尤其是通过网络和 UTF-16 在许多系统内部进行交换。

根据编码和字形(显示表示),可能需要 1 到 16 个以上的字节来表示单个字形。表情符号大多位于代码平面 1 中,这意味着它们的代码点需要超过 16 位(unicode 是 21 位编码系统)。此外,一些字形由一系列代码点表示,例如将国家与国旗和表情符号结合在一起的国旗与“加入者”。

如果 217 (0xd9) 不是 UTF-8 中的合法代码点,但 217 作为两个字节(16 位整数)(0x00d9) 是 Ù 的有效表示。

参见 ASCIIUnicode .

关于java - 为什么字符在128数字后不能打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39191374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com