Wenn Sie herausfinden möchten, ob die angegebene Zeichenfolge vom Zielzeichencode unterstützt wird, können Sie bequem "CharsetEncoder.canEncode" verwenden. Dies ist eine Methode, die true zurückgibt, wenn die als Argument angegebene Methode vom Zielzeichencode unterstützt wird, andernfalls false, wenn Sie beispielsweise überprüfen möchten, ob die Zeichenfolge s
von Shift_JIS unterstützt wird. Schreiben Sie einfach so.
String s = "...";
Charset.forName("Shift_JIS").newEncoder().canEncode(s);
Als Beispiel für die Überprüfung, ob es tatsächlich funktioniert, verwenden wir das Kanji "Taka". Es ist eine sogenannte "Leiter". Dieses Kanji wird von Shift_JIS nicht unterstützt, aber von seiner Erweiterung Windows-31J. Lassen Sie uns dies überprüfen.
Charset.forName("Shift_JIS").newEncoder().canEncode("Taka"); //=> false
Charset.forName("Windows-31J").newEncoder().canEncode("Taka"); //=> true
Es scheint wie erwartet zu funktionieren (´ ・ ω ・ `)
** Umweltinformationen: **
C:\>javac -version
javac 11.0.3
C:\>java -version
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.3+7)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.3+7, mixed mode)
Recommended Posts