Gibt es eine Möglichkeit, um die Zeichenkodierung anzugeben, die zu der java.lang.StringBuilder
Oder bin ich hängen geblieben :
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 (?)
}
- Text schreiben oder Lesen aus einer Datei oder einem Stream ist, was kann werden speziell kodiert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Strings sind immer UTF-16-codiert in Java. Sie sind nur Sequenzen von
char
Werte, die UTF-16 code-Einheiten. Wenn Sie die Kodierung angeben, die für dieString(byte[], String)
Konstruktor, es ist nur sagen, wie decode bytes in text - die Codierung ist danach verworfen.Wenn Sie brauchen, um zu bewahren eine Kodierung, benötigen Sie zum erstellen Ihrer eigenen Klasse zu halten
Charset
undString
zusammen. Ich kann nicht sagen, dass ich mir immer gewünscht habe, das zu tun, aber - sind Sie wirklich sicher, dass Sie brauchen, um?(Also Ihr "hängen geblieben" code würde nicht funktionieren sowieso - und es wäre auch sehr ineffizient.)
Wie etwa zu Konverter mit caching: