Bonjour,
Voici ce que je veux faire : insérer des caractères arabes dans une base Oracle 10g via un WebService.
Le problème c'est que les données arabes (UTF8) se retrouvent sous forme de ? à l'envers en base.
Les WS tournent sur un serveur Jonas 4.8.6 et nous utilisons Hibernate (en version 3). Je ne poste pas ce message sur le forum Hibernate parce que j'ai déjà tenté ces solutions sans succès :
En parcourant le net j'ai trouvé un solution qui consiste à passer directement par une connection JDBC et caster mes valeurs UTF8 en NCHAR comme çà :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <property name="hibernate.connection.useUnicode">true</property> <property name="hibernate.connection.defaultNChar">true</property> <property name="hibernate.connection.characterEncoding">utf-8</property>
Cette technique fonctionne sur un "batch" lorsqu'on utilise une JVM sans Jonas. Mais dans le cas du WS, la commande prepareStatement retourne un JStatement (implementation de PreparedStatement par Jonas) se qui provoque un ClassCastExcpetion lors du FormOfUse ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 stmt = connection.prepareStatement(query); ((OraclePreparedStatement)stmt).setFormOfUse(1,OraclePreparedStatement.FORM_NCHAR);
J'ai donc épuisé toutes mes possibilités ...
Est-ce que quelqu'un à une idée ??
Merci.
ps : je précise que les colonnes de la table dans laquelle on insère les données sont du type NVARCHAR2.
Partager