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   -
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

Configuration: Windows / Chrome 90.0.4430.93
A voir également:

3 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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.
0
PCUEN Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
merci pour votre réponse.
Malheureusement, j'ai le même résultat en écrivant :
System.out.println("\u0111");
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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 :
java MaClasse > fichier.txt
0
PCUEN Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Exact. J'utilisais la console pour débugger mais l'affichage dans Swing fonctionne.
Merci beaucoup pour le dépannage !
0