Mr_*_*s_D 7 java character-encoding
或者我坚持:
String s = new String(new byte[0], Charset.forName("ISO-8859-1"));
// or ISO_8859_1, or LATIN-1 or ... still no constants for those
for (String string : strings) { // those are ISO-8959-1 encoded
s += string; // hopefully this preserves the encoding (?)
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 13
字符串在Java 中始终采用 UTF-16编码.它们只是char值序列,是UTF-16代码单元.当您为String(byte[], String)构造函数指定编码时,它只是说如何将字节解码为文本 - 之后将丢弃编码.
如果您需要保留的编码,你需要创建自己的类保持Charset和String在一起.我不能说我曾经想过这样做 - 你真的确定你需要吗?
(所以你的"卡住"代码无论如何都行不通 - 而且效率也很低.)