Je suis un peu coincé sur celui-ci. Je ne suis pas un gourou Java ou Oracle, alors s'il vous plaît donner des réponses détaillées :)Problème d'encodage oracle + java lors de l'insertion
J'ai un service web qui insère quelque chose dans la DB. le web-service est hébergé sur l'axe. le db est oracle propriétés suivantes:
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CHARACTERSET ZHS16GBK
le service Web est hébergé sur Windows Server 2008, version anglaise, mais j'ai changé les paramètres régionaux du système chinois
maintenant les données après insertion a encodage problème et montre des caractères étranges comme ????, exxk ??
le fichier jws a un codage GBK. et les données qui sont insérées dans le DB sont codées en dur dans le fichier [nous ne le lisons pas à partir de REQUEST]
[edit] juste une chose, il n'est pas possible de changer le DB entier en utf-8 comme il a beaucoup de tables et des données
[modifier plus] pour rendre les choses plus claires
la machine accepte les données de deux sources. Fondamentalement, il est utilisé pour envoyer et recevoir des sms/mms à nos utilisateurs abonnés. principalement, il fonctionne avec le centre de contrôle d'opérateur de GSM où tous les codages sont manipulés en GBK. D'autre part, la machine accepte également les demandes du site Web pour envoyer des sms/mms aux utilisateurs. Ici, l'encodage est géré en UTF-8. Si le site veut envoyer un sms à l'utilisateur, il appellera un web-service sur cette machine qui va insérer des données dans db [notre problème est ici]. puis un service Windows vérifie continuellement la base de données et s'il trouve une nouvelle demande d'envoi de sms/mms, il envoie les sms/mms et supprime l'enregistrement. Tout fonctionnait correctement sur l'ancienne machine car elle avait la version chinoise de Windows 2003. Nous avons mis à jour vers un nouveau serveur et installé la version anglaise du serveur Windows 2008 dessus. et maintenant les données sont déformées après les insertions de service Web dans DB.
Pouvez-vous mieux montrer l'ensemble pipeline de traitement à partir duquel les données proviennent, à l'endroit où il est traité, à l'endroit où il est stocké et, enfin, la façon dont il est examiné. Je ne vois pas très bien quel est le rôle du service Web. Pouvez-vous nous dire à quel moment dans le pipeline les données sont toujours correctes? Je doute que l'insertion elle-même soit le problème car Java et Oracle sont tous deux au courant des encodages et des jeux de caractères et se plaignent s'ils ne peuvent pas le convertir. – Codo