在java中将int转换为char-我必须使用ASCII吗?

在java中将int转换为char-我必须使用ASCII吗?,java,char,casting,character,Java,Char,Casting,Character,问:在Java中将int转换为char时,默认结果似乎是对应于该int值的ASCII字符。我的问题是,有没有办法指定在施放时要使用的不同字符集 (背景信息:我正在做一个项目,在这个项目中,我读入一个二进制字符字符串,将其转换成块,然后将块转换成十进制整数的值,然后将其转换为字符。然后,我需要能够通过反转过程将结果压缩字符“扩展”回二进制。 我已经能够做到这一点,但目前我只能压缩到6“位”转换为单个字符,因为当我允许更大的数量时,该范围内的一些值似乎不能被ASCII很好地处理;它们成为方框或问号,

问:在Java中将int转换为char时,默认结果似乎是对应于该int值的ASCII字符。我的问题是,有没有办法指定在施放时要使用的不同字符集

(背景信息:我正在做一个项目,在这个项目中,我读入一个二进制字符字符串,将其转换成块,然后将块转换成十进制整数的值,然后将其转换为字符。然后,我需要能够通过反转过程将结果压缩字符“扩展”回二进制。 我已经能够做到这一点,但目前我只能压缩到6“位”转换为单个字符,因为当我允许更大的数量时,该范围内的一些值似乎不能被ASCII很好地处理;它们成为方框或问号,当它们被转换回int时,它们的原始值没有被保留。如果我可以使用另一个字符集,我想我可以避免这个问题d一次将二进制文件压缩8位,这是我的目标。)


我希望这是明确的,并提前感谢

字符和整数之间的转换使用值,ASCII是其中的一个子集。如果处理二进制数据,应避免使用字符和字符串,而应使用整数数组-注意,Java没有无符号8位整数。

字符和整数之间的转换使用值,ASCII是其中的一个子集。如果处理二进制数据,则应避免使用字符和字符串,而应使用整数数组-请注意,Java没有无符号8位整数。

您的问题与ASCII或字符集无关

在Java中,
char
只是一个16位整数。将int(32位整数)强制转换为chars时,唯一要做的就是保留int的16个最低有效位,并丢弃高16位。这称为缩小转换

参考资料:


您的问题与ASCII或字符集无关

在Java中,
char
只是一个16位整数。将int(32位整数)强制转换为chars时,唯一要做的就是保留int的16个最低有效位,并丢弃高16位。这称为缩小转换

参考资料:


你在搜索的不是演员阵容,而是转换


有一个字符串构造函数,它接受字节数组和字符集编码。这应该对你有所帮助。

你在搜索的不是演员阵容,而是转换

有一个字符串构造函数,它接受字节数组和字符集编码。这应该对你有帮助

我在做一个项目 读入一串二进制字符, 将其转换为块,然后转换 将数据块转换为其在中的值 小数点,整数,然后我将其转换为 查斯。然后我需要能够 “展开”结果压缩 通过反转将字符恢复为二进制 这个过程

你没有提到你为什么要这样做,而且(说实话)要理解你试图描述的内容有点困难(一方面,我不明白为什么结果中的角色会以任何方式被“压缩”

如果你只是想把二进制数据表示成文本,有很多方法可以做到这一点。但听起来你可能在追求别的东西

我在做一个项目 读入一串二进制字符, 将其转换为块,然后转换 将数据块转换为其在中的值 小数点,整数,然后我将其转换为 查斯,然后我需要能够 “展开”结果压缩 通过反转将字符恢复为二进制 这个过程

你没有提到你为什么要这样做,而且(说实话)要理解你试图描述的内容有点困难(一方面,我不明白为什么结果中的角色会以任何方式被“压缩”


如果您只想将二进制数据表示为文本,那么有很多方法可以实现这一点。但听起来您可能在追求其他东西?

“一个二进制字符字符串”,是吗?int>0和“一个二进制字符字符串”,嗯?是ints>0吗?很抱歉,我只是不想做一堵没有人会感兴趣阅读的文本墙。呃,没有意识到点击Enter键会发布,让我详细说明一下:该项目涉及哈夫曼编码;我们需要将.txt文件中的文本转换为二进制,并能够解码该二进制以获得原始数据l文本。如果我们能够以压缩的形式存储编码的文本,就有了一个额外的好处。我决定简单地将二进制数据分块存储,而不是打印0和1,我将二进制数据块的十进制值转换为字符,给我一个字符代表多个字符。这就是我所说的压缩。是的,我发现还有其他字符呃实现这一点的方法,但现在我已经完成了这个项目,但是因为某些值不会产生一个字符,当转换为字符时,它会保留这个值,我一次只能使用6个二进制字符。我只是想知道是否有办法强制转换使用其他字符集,所以我不能我想找到一个适用于(比如)8个块的文件。啊,好吧,那么该文件是一个包含“1”和“0”字符的文本文件,而不是一个二进制文件?为什么不将其存储为一个实际的二进制文件?将每组8位字符转换为一个字节值,并将其存储为一个字节(例如,使用FileOutputStream).如前所述,转换为字符时,您并不是转换为字符集,而是转换为整数值(打印时转换为特定字符编码),因此,如果发生在Unicode中不可打印的字符上,随机选择不同的字符集不太可能有帮助