如何从使用 StandardCharsets.US_ASCII 编码的字节中获取初始字符串?

How to get initial string from bytes encoded using StandardCharsets.US_ASCII?

我需要能够将字符串从字节编码和解码为 dn 的工作代码。如何编写才能在所有平台上获得相同的结果?

String s = "test";
byte[] b = s.getBytes(StandardCharsets.US_ASCII);
System.out.println(b);

您编写的代码将在所有平台上给出相同的结果。

getBytes() 方法有两个版本,一个带参数,一个不带参数。不使用的将使用默认字符集,这意味着输出将因平台而异。但是你使用的那个,你指定一个字符集,将在任何地方给出相同的结果。

(也就是说,您可能最好使用 UTF-8 而不是 US_ASCII,因为它会更宽容您允许在输入字符串中包含哪些字符。但是作为只要你保持一致,它仍然会在任何地方给出相同的行为。)

String-class有匹配的构造函数:

String s = "test";
byte[] b = s.getBytes(StandardCharsets.US_ASCII);
String r = new String(b, StandardCharsets.US_ASCII);
System.out.println(r);