Jeder hasst Zeichencodes, nicht wahr? Es war die Rede davon, dass Java 8 und UTF-8 zum Standard werden. Jetzt möchte ich ein Beispiel schreiben, das Zeichencodes in Java verwendet.
Wann müssen Sie den Zeichencode kennen? In diesem Fall erfolgt die Eingabe oder Ausgabe von einer anderen als Ihrer eigenen Java-Anwendung.
Geben Sie Daten vom Client auf dem Server-Client-System ein Lesen Sie externe Dateien wie CSV
Rückkehr vom Server im Server-Client-System Exportdatei DB-Registrierung
Ich denke, es gibt viele andere, aber hier sind einige, die ich oft benutze.
String.getBytes Eine Funktion zum Abrufen einer Zeichenfolge im Byte-Format.
"TEST".getBytes(StandardCharsets.UTF_8);
Geben Sie auf diese Weise den Zeichencode im Argument von getBytes an. Auf diese Weise kann die Zeichenfolge "TEST" als UTF-8 interpretiert und in das Byte-Format konvertiert werden. Diese Funktion getBytes kann nichts als Argument angeben. In diesem Fall wird der Standardzeichencode in der Ausführungsumgebung verwendet. Wenn Sie den Wert überprüfen möchten, können Sie ihn überprüfen, indem Sie den folgenden Code ausführen.
System.out.println(System.getProperty("file.encoding"));
Wenn Sie den Standardzeichencode ändern möchten, geben Sie zur Laufzeit die folgenden Optionen an.
-Dfile.encoding=〇〇
Sie können die Zeichenfolge des angegebenen Zeichencodes abrufen, indem Sie Byte [] und den Zeichencode im Konstruktor von String empfangen.
byte[] byte1 = "TEST".getBytes(StandardCharsets.UTF_8);
String encorded = new String(byte1, "MS932");
Wenn dieser Konstruktor auch keinen Zeichencode angibt, wird der Standardzeichencode in der Ausführungsumgebung verwendet.
Es gibt viele Möglichkeiten, eine Datei zu lesen, aber nur eine ist ein Auszug.
try {
BufferedReader bufferedReader = Files.newBufferedReader(Paths.get(""), StandardCharsets.UTF_8);
} catch (IOException e) {
//TODO automatisch generierter Fangblock
e.printStackTrace();
}
Geben Sie die zu lesende Datei mit Files.newBufferedReader an und geben Sie den Zeichencode im zweiten Argument an. Diese Funktion kann den Zeichencode weglassen. In diesem Fall ist es in jeder Umgebung UTF-8. (Es scheint von Java8 zu sein) Es sieht aus wie das.
public static BufferedReader newBufferedReader(Path path) throws IOException {
return newBufferedReader(path, StandardCharsets.UTF_8);
}
Nun, ich möchte heute hier enden. Files.newBufferedReader ist standardmäßig UTF-8, und die Konstruktoren getBytes und String haben je nach Umgebung unterschiedliche Standardwerte. Bitte beachten Sie, dass der Standardwert je nach verwendeter Funktion unterschiedlich ist. Nun, ich denke, Sie sollten den Zeichencode jederzeit angeben. ..
Recommended Posts