我应该使用哪种字符集来编码和解码8位值?

我有编码和解码特定字节值的问题。 我正在实现一个应用程序,在那里我需要获取string数据,对其进行一些处理,并返回另一个string。

我目前通过String.getbytes()获取byte[]值,做适当的操作,然后通过构造函数String(byte[] data)返回String。 问题是,当一些字节有特定的值,例如-120-127等,构造函数中的编码返回? 字符,即字节值63 。 据我所知,这些值是不能在Windows上打印的,关于这样的事实,即Java中的-12010001000 ,根据ASCII表是\b字符

有没有字符集,我可以使用正确的代码和解码每个字节值(从-128到127)?

编辑:我也会说, ISO-8859-1字符集工作得很好,但不编码语言特定的字符,如ąęćśńźżół

您似乎对编码有一些困惑, 而不是针对Java ,所以我会尽力帮助解决一些问题。

不存在使用从-128到0的代码点的任何字符集和编码。如果将该字节视为无符号整数,则得到范围0-255,该范围对于所有cp- *和isoo-8859均有效 – * charsets。

ASCII字符在0-127范围内,无论您将int视为有符号还是无符号,它们都显示为有效。

UTF-8字符的范围是0-127, 或者是双字节字符,第一个字节的范围是128-255。

你提到了一些波兰字符,所以不用ISO-8859-1,你应该编码为ISO-8859-2或(最好) UTF-8