Ändern der Standard-Codierung für String(byte[])
Gibt es eine Möglichkeit, ändern Sie die Codierung verwendet, die durch den String(byte []) - Konstruktor ?
In meinem eigenen code, den ich verwenden String(byte[],String) angeben, die Codierung, aber ich verwende eine externe Bibliothek, die ich nicht ändern kann.
String src = "with accents: é à";
byte[] bytes = src.getBytes("UTF-8");
System.out.println("UTF-8 decoded: "+new String(bytes,"UTF-8"));
System.out.println("Default decoded: "+new String(bytes));
Wird die Ausgabe für diesen ist :
UTF-8 dekodiert: mit Akzenten: das é à Standard-entschlüsselt: mit Akzenten: é Ã
Ich habe versucht, ändern der system-Eigenschaft file.encoding
aber es funktioniert nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie zum ändern des Gebietsschemas vor dem Start der JVM; siehe:
Java, bug-ID 4163515
Einigen Orten scheinen zu implizieren, Sie können tun dies, indem Sie die Datei.Codierung-variable beim Start der JVM, wie
...aber ich habe nicht versucht, diese selbst. Der sicherste Weg ist, um eine Umgebungsvariable im Betriebssystem.
Zitiert aus defaultCharset()
In den meisten Betriebssystemen können Sie die Zeichensatz mit einer Umgebungsvariable.
Ich denke, Sie wollen dieses: System.setProperty("file.Codierung", "UTF-8");
Es löste einige Probleme, aber ich habe noch eine andere lieben. Das Zeichen "í" und "Í" nicht korrekt konvertiert, wenn das SO ist ISO-8859-1. Nur mit der JVM-option beim Start, ich bekomme es gelöst. Jetzt nur meine Java-Konsole in der NetBeans-IDE abstürzt charset bei der Anzeige von Sonderzeichen.