Postgresql, champs type text et encodage (French codes )

1
0
-1

Allo,
J'ai un processus avec un connecteur email et j'ai besoin afficher correctement le contenu d'un champ type TEXT dans le corps du courriel. Dans le contexte de Bonita Studio avec H2 le contenu du courriel se montre bien et bell. Mais lorsque je l'applique vers la bd dans le contexte de production avec Postgresql, il affiche par example «...d�tails... test test � venir et �l�ments avec �edille.» (il devra dire «..détails... test test à venir et éléments avec çedille.»). J'ai éssayé d'appliquer de transformations (par example myvar.toString() ou autres pour le convertir en UTF8 ) mais sans résultats. Est-ce que vous avez eu ce type de problème?

Merci en avance pour vos suggestions ou expériences!

Walter R.

Version Bonita BPM 7.5.1

Comments

Submitted by antoine.mottier on Thu, 01/04/2018 - 17:21

Est ce que la base de donnée PostgreSQL est configurée pour utiliser l'encoding UTF-8 comme indiqué dans la documentation Bonita ?

Dans les paramètres avancés de la configuration du connecteur email il est possible de préciser le "Charcter set" utilisé qui est par défaut UTF-8. Si la base de donnée est bien configuré en UTF-8 il ne devrait pas y avoir de problème.

Submitted by whramirez on Thu, 01/04/2018 - 20:34

C'est un bon point à valider. Je vais le faire en retournant au bouleau. Merci Antoine et bonne année!

Submitted by whramirez on Mon, 01/08/2018 - 15:02

Allo,
en revisant la configuration de postgres, la bd a déjà l'encodage UTF-8. Il a aussi la 'collation' et le type de caractère French_Canada.1252. J'en pense maintenant que c'est un problème au niveau de Java à l'interieur du connecteur email et précisément avec le type de champ 'text' de postgres, parce que d'autres champs qui sont type 'character varying' l'encodage français est correct. À suivre.
Merci.

2 answers

1
0
-1
This one is the BEST answer!

Salut,
Pour vous dire que finalement j'ai trouvé mon problème réglé concernant l'encodage de Posgresql en lien aux champs type TEXT. Ça était par hasard que j'ai testé mon processus avec la version 10 de Posgresql. Donc, ce ça la solution, upgrader vers cet version-là pour ce type de problème.

1
0
-1

Hello,
J'ai fait plusieurs tests sans résultats encore. En principe il y a qqch dans la bd postgresql ou java qui fait que mon champ type 'text' produits un encodage en ISO-8859-1. Pour valider ça j'ai trouvé l'instruction suivante (fait à l'ntérieur de Postgresql):
select fieldId1, field2, convert_from(loread(lo_open(textfield::int, x'40000'::int), x'40000'::int), 'UTF8') from mytable
Ce command me donne l'erreur: ERREUR: séquence d'octets invalide pour l'encodage « UTF8 » : 0xe0 0x20 0x74
Donc, en changeant l'encodage à latin1 j'ai vois le contenu de mon champ textfield (encodage ISO-8859-1).
Je soupçonne donc à java dans le moment du processus de l'importation mais, en ce moment-là je ne comprend pas comment 'forcer' le bon encodage, s'il faut, soit en UTF8. Un élément à considérer c'est que lors de l'importation j'ai un connecteur ms-sql et peut-être là il faudrait penser à une transformation que j'ignore. À suivre.

Notifications