[JAVA] Je veux savoir si la chaîne de caractères spécifiée est prise en charge par le code de caractère cible

Si vous voulez savoir si la chaîne spécifiée est prise en charge par le code de caractère cible, il est pratique d'utiliser CharsetEncoder.canEncode. C'est une méthode qui retourne true si la méthode donnée en argument est prise en charge par le code de caractère cible, false sinon, par exemple, si vous souhaitez vérifier si la chaîne de caractères s est prise en charge par Shift_JIS, Écrivez juste comme ça.

String s = "...";
Charset.forName("Shift_JIS").newEncoder().canEncode(s);

Comme exemple pour vérifier si cela fonctionne réellement, nous utiliserons le kanji "Taka". C'est une soi-disant «échelle». Ce kanji n'est pas pris en charge par Shift_JIS, mais il est pris en charge par son extension, Windows-31J. Vérifions ça.

Charset.forName("Shift_JIS").newEncoder().canEncode("Taka");   //=> false
Charset.forName("Windows-31J").newEncoder().canEncode("Taka"); //=> true

Il semble fonctionner comme prévu (´ ・ ω ・ `)

** Informations environnementales: **

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

Je veux savoir si la chaîne de caractères spécifiée est prise en charge par le code de caractère cible
# 1_JAVA Je veux obtenir le numéro d'index en spécifiant un caractère dans la chaîne de caractères
Je veux savoir quelle version de java le fichier jar que j'ai est disponible
Lorsque la chaîne de caractères transmise au C ++ par JNA est déformée
[Ruby] Je souhaite afficher uniquement le caractère impair dans la chaîne de caractères
[Java] Comment découper une chaîne de caractères caractère par caractère
Je veux afficher quel caractère une chaîne de caractères arbitraire apparaît à partir de la gauche
[JavaScript] Je souhaite limiter le traitement en vérifiant les éléments d'entrée lorsque le temps spécifié s'écoule lors de la mise au point.
(´-`) .. oO (Je veux trouver facilement la sortie standard" Hello ".
Découvrez tous les ID de fuseau horaire pris en charge par la classe Java TimeZone
Je veux limiter l'entrée en réduisant la plage de nombres
[Java] Vérifiez si la chaîne de caractères est composée uniquement de blancs (= Vierge)
[Java] Divise une chaîne de caractères par un caractère spécifié
[Swift] Copie la chaîne de caractères dans le presse-papiers
Je souhaite obtenir une liste de chaînes de caractères uniques uniquement en excluant les chaînes de caractères fixes du nom de fichier
[Rubiy] Je veux créer un tableau à partir d'une chaîne de caractères avec la méthode split. Et vice versa.
Ruby: J'ai essayé de savoir où Nokogiri va voir l'encodage lui-même
[Rails / ActiveRecord] Je souhaite valider la valeur avant la conversion du type (_before_type_cast)
Même si je souhaite convertir le contenu d'un objet de données en JSON en Java, il existe une référence circulaire ...
Je veux trouver la somme de contrôle MD5 d'un fichier en Java et obtenir le résultat sous forme de chaîne de caractères en notation hexadécimale.
Je veux trier par délimiteur d'onglet avec ruby
Je veux var_dump le contenu de l'intention
Je veux écrire une simple répétition d'une chaîne de caractères
Code utilisé pour connecter Rails 3 à PostgreSQL 10
Je veux tronquer après la virgule décimale
Je souhaite supprimer un fichier géré par Git
Je veux obtenir la valeur en Ruby
Je ne peux pas saisir le japonais avec le code VS (Visual Studio Code) d'Ubuntu 18.04.5! ?? Si vous souhaitez télécharger VS Code sur Ubuntu, rendez-vous sur le site officiel! !!