有没有办法为java.lang.StringBuilder指定字符编码

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)构造函数指定编码时,它只是说如何将字节解码为文本 - 之后将丢弃编码.

如果您需要保留的编码,你需要创建自己的类保持CharsetString在一起.我不能说我曾经想过这样做 - 你真的确定你需要吗?

(所以你的"卡住"代码无论如何都行不通 - 而且效率也很低.)