2 votes

Quelle est la cause de la corruption des champs de texte contenant des caractères ¿ ?

Nous avons un problème très étrange dans notre application, tout d'un coup nous avons commencé à remarquer que des points d'interrogation à l'envers enregistrés avec d'autres textes saisis dans les champs de l'écran. Ces points d'interrogation à l'envers n'ont pas été saisis à l'origine par les utilisateurs et leur origine n'est pas claire. Nous utilisons Oracle 10g avec Asp.Net.

Voici un exemple de problème : "140, 141) ¿ 16-Oct-07". Si quelqu'un a déjà vu ce problème et a trouvé un moyen de le résoudre, merci de me le faire savoir.

7voto

Tim Ebenezer Points 2195

Cela ressemble à un problème d'encodage de caractères. Veuillez vérifier l'encodage de votre base de données (tables) et l'encodage des objets ou des chaînes qui transmettent les données dans la base de données. S'il y a une mauvaise correspondance (DB en ANSI, App en UTF-8), ce genre de problème peut apparaître.

2voto

Dilshod Tadjibaev Points 951

Greg, vous devriez vérifier les paramètres NLS_CHARACTERSET et non NLS_NCHAR_CHARACTERSET. Et je parie que c'est WE8ISO8859P1 ou quelque chose de similaire et non unicode. Le problème survient lorsque les données soumises sont en unicode, ce qui est probablement UTF8, et qu'Oracle essaie de faire correspondre les caractères au jeu de caractères WE8ISO8859P1. Cela fonctionne bien pour la plupart d'entre eux, mais échoue pour les caractères numériques ASCII élevés, comme 140.

Oui, j'ai constaté le même problème dans notre application et, dans notre cas, il était dû à des guillemets spéciaux ("exemple", "exemple") qui avaient été copiés à partir de MS Word. Word convertit automatiquement les guillemets doubles en d'autres guillemets. La solution a consisté à convertir la base de données en UTF-8.

0voto

Maria OM Points 1

Si vos utilisateurs copient à partir de MS Word, vous pouvez désactiver cette fonction. Elle fait partie de la fonctionnalité de correction automatique et de formatage automatique. Si vous décochez les options de remplacement des guillemets et des apostrophes, tout devrait bien se passer. Veillez à désactiver les remplacements dans les fonctions de formatage automatique et de formatage automatique au fur et à mesure de la saisie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X