J'ai un projet qui s'exécute sur WebSphere Liberty sous Linux. Ma langue est le portugais brésilien et nous avons quelques mots accentués. Mon code java définit certains messages de l'utilisateur comme ci-dessous:Codage de caractères étrange
...
ErroResponse erroResponse = new ErroResponse();
erroResponse.setMensagem("Esse grupo não pode ser criado. Já existe um grupo criado com esse nome.");
response = Response.status(Status.BAD_REQUEST).entity(erroResponse).build();
...
Lorsque le même message est de montrer à l'utilisateur, il semble ainsi:
Je ne pense pas que ce soit un problème d'encodage de navigateur, car le message est identique sur mes journaux de serveur.
J'ai essayé de régler le codage de machine virtuelle Java en utilisant -Dclient.encoding.override -Dfile.encoding ISO-8859-1 et UTF-8, sans succès.
Le même projet, exécuté sur un serveur Windows, s'exécute sans problème, affichant les messages avec les accents corrects.
Seuls les messages qui ont été directement écrits dans le code source ont ce problème. Les mots accentués provenant du résultat de la requête de base de données sont correctement présentés.
J'utilise Suse 11.4.
J'apprécie vraiment toute aide.
Merci
Une cause (ici peu probable) pourrait être que la source java est éditée comme UTF-8 mais compilée comme par exemple ISO-8859-1. (Plus souvent vu avec JSPs.) Essayez en utilisant '\ u00E3' au lieu de' ã' pour vérifier cela. –
comment le forcer à compiler comme UTF-8 au lieu de ISO-8859-1? –
@JoopEggen vous avez raison. Après votre commentaire, je pourrais trouver une solution. Merci. –