Tout le monde déteste les codes de caractères, n'est-ce pas? On parlait de Java 8 et UTF-8 devenant la valeur par défaut. Maintenant, j'aimerais écrire un exemple qui utilise des codes de caractères en Java.
Tout d'abord, quand devez-vous connaître le code de caractère? C'est quand il y a une entrée ou une sortie depuis une autre application que votre propre application Java.
Données d'entrée du client sur le système client serveur Lire des fichiers externes tels que CSV
Retour du serveur dans le système client serveur Exporter le fichier Enregistrement DB
Je pense qu'il y en a beaucoup d'autres, mais en voici quelques-unes que j'utilise souvent.
String.getBytes Une fonction pour obtenir une chaîne de caractères au format octet.
"TEST".getBytes(StandardCharsets.UTF_8);
De cette manière, spécifiez le code de caractère dans l'argument de getBytes. En faisant cela, la chaîne de caractères "TEST" peut être interprétée comme UTF-8 et convertie au format octet. Cette fonction getBytes ne peut rien spécifier comme argument. Dans ce cas, le code de caractère par défaut dans l'environnement d'exécution est utilisé. Si vous souhaitez vérifier sa valeur, vous pouvez la vérifier en exécutant le code suivant.
System.out.println(System.getProperty("file.encoding"));
Si vous souhaitez modifier le code de caractère par défaut, spécifiez les options suivantes lors de l'exécution.
-Dfile.encoding=〇〇
Vous pouvez obtenir la chaîne de caractères du code de caractère spécifié en recevant l'octet [] et le code de caractère dans le constructeur de String.
byte[] byte1 = "TEST".getBytes(StandardCharsets.UTF_8);
String encorded = new String(byte1, "MS932");
Si ce constructeur ne spécifie pas non plus de code de caractère, le code de caractère par défaut dans l'environnement d'exécution sera utilisé.
Il existe de nombreuses façons de lire un fichier, mais une seule est extraite.
try {
BufferedReader bufferedReader = Files.newBufferedReader(Paths.get(""), StandardCharsets.UTF_8);
} catch (IOException e) {
//Bloc de capture généré automatiquement TODO
e.printStackTrace();
}
Spécifiez le fichier à lire avec Files.newBufferedReader et spécifiez le code de caractère dans le deuxième argument. Cette fonction peut omettre le code de caractère, auquel cas ce sera UTF-8 dans n'importe quel environnement. (Cela semble provenir de Java8) Ça ressemble à ça.
public static BufferedReader newBufferedReader(Path path) throws IOException {
return newBufferedReader(path, StandardCharsets.UTF_8);
}
Eh bien, je voudrais terminer ici aujourd'hui. Files.newBufferedReader utilise par défaut UTF-8, et les constructeurs getBytes et String ont des valeurs par défaut différentes en fonction de l'environnement. Veuillez noter que la valeur par défaut diffère selon la fonction utilisée. Eh bien, je pense que vous devriez spécifier le code du caractère à tout moment. ..