Encodage. Utilisation des caractères vietnamiens
Résolu
PCUEN
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
PCUEN Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
PCUEN Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite développer une application qui utilise l'écriture vietnamienne.
Il me semblait que les caractères vietnamiens sont inclus dans l'UTF-16 mais lorsque je fais :
correction="đ";
System.out.println(correction);
Le résultat affiché est un point d'interrogation à la place du "đ" (d barré)
Pouvez-vous SVP me dire comment gérer l'encodage dans Java.
Est-ce que UTF-16 inclue bien les caractères vietnamien ?
Merci.
Pascal
Je souhaite développer une application qui utilise l'écriture vietnamienne.
Il me semblait que les caractères vietnamiens sont inclus dans l'UTF-16 mais lorsque je fais :
correction="đ";
System.out.println(correction);
Le résultat affiché est un point d'interrogation à la place du "đ" (d barré)
Pouvez-vous SVP me dire comment gérer l'encodage dans Java.
Est-ce que UTF-16 inclue bien les caractères vietnamien ?
Merci.
Pascal
Configuration: Windows / Chrome 90.0.4430.93
A voir également:
- Encodage. Utilisation des caractères vietnamiens
- Utilisation chromecast - Guide
- Encodage ascii - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Caractères spéciaux - Guide
- Caractères spéciaux mac - Guide
3 réponses
Bonjour,
Pour écrire de l'Unicode en Java il vaut mieux utiliser \u suivi du code hexadécimal du caractère, parce que mettre directement le caractère Unicode dans le code source peut poser des problèmes à la compilation (et ce serait de toute façon impossible pour un caractère non imprimable).
Par exemple pour đ il faut écrire "\u0111"
https://www.fileformat.info/info/unicode/char/0111/index.htm
Toutefois, ce n'est pas parce que tu écris un caractère Unicode que le support qui va le lire saura l'afficher.
Avec un System.out.println, tu écris dans la console, mais si celle ci ne supporte pas l'Unicode alors tu auras des ? à la place des caractères inconnus.
Le problème ce n'est donc pas ton programme, mais la console.
Avec le même programme mais deux consoles, une qui gère l'Unicode, l'autre non, tu auras des résultats différents, bien affiché sur l'une, avec des ? sur l'autre.
Pour écrire de l'Unicode en Java il vaut mieux utiliser \u suivi du code hexadécimal du caractère, parce que mettre directement le caractère Unicode dans le code source peut poser des problèmes à la compilation (et ce serait de toute façon impossible pour un caractère non imprimable).
Par exemple pour đ il faut écrire "\u0111"
https://www.fileformat.info/info/unicode/char/0111/index.htm
Toutefois, ce n'est pas parce que tu écris un caractère Unicode que le support qui va le lire saura l'afficher.
Avec un System.out.println, tu écris dans la console, mais si celle ci ne supporte pas l'Unicode alors tu auras des ? à la place des caractères inconnus.
Le problème ce n'est donc pas ton programme, mais la console.
Avec le même programme mais deux consoles, une qui gère l'Unicode, l'autre non, tu auras des résultats différents, bien affiché sur l'une, avec des ? sur l'autre.
Bonjour,
merci pour votre réponse.
Malheureusement, j'ai le même résultat en écrivant :
System.out.println("\u0111");
merci pour votre réponse.
Malheureusement, j'ai le même résultat en écrivant :
System.out.println("\u0111");
Oui, mais le problème ne vient pas de ton programme, c'est ta console qui ne sait pas afficher ce caractère.
Si tu redirigeais le flux de données vers un fichier par exemple pour le lire avec un logiciel qui sait afficher l'Unicode, tu verrais que le caractère est bien là.
Exemple :
Si tu redirigeais le flux de données vers un fichier par exemple pour le lire avec un logiciel qui sait afficher l'Unicode, tu verrais que le caractère est bien là.
Exemple :
java MaClasse > fichier.txt