如何在 Java 中将字符串与 UTF8 字节数组相互转换
2022-08-31 05:18:13
在Java中,我有一个字符串,我想将其编码为字节数组(UTF8或其他一些编码)。或者,我有一个字节数组(在某些已知的编码中),我想将其转换为Java字符串。如何进行这些转换?
在Java中,我有一个字符串,我想将其编码为字节数组(UTF8或其他一些编码)。或者,我有一个字节数组(在某些已知的编码中),我想将其转换为Java字符串。如何进行这些转换?
从转换为 :String
byte[]
String s = "some text here";
byte[] b = s.getBytes(StandardCharsets.UTF_8);
从转换为 :byte[]
String
byte[] b = {(byte) 99, (byte)97, (byte)116};
String s = new String(b, StandardCharsets.US_ASCII);
当然,您应该使用正确的编码名称。我的例子使用了US-ASCII和UTF-8,这两种常用的编码。
以下解决方案可避免对每次转换执行字符集查找:
import java.nio.charset.Charset;
private final Charset UTF8_CHARSET = Charset.forName("UTF-8");
String decodeUTF8(byte[] bytes) {
return new String(bytes, UTF8_CHARSET);
}
byte[] encodeUTF8(String string) {
return string.getBytes(UTF8_CHARSET);
}