[XML] Solution aux caractères tronqués dans la conversion des codages UTF8 et GB2312

Y2J
Libérer: 2017-04-22 13:53:09
original
2424 Les gens l'ont consulté

Les informations examinées doivent être générées sous forme de fichier XML, et le XML doit être codé en GB2312, car de nombreux sites Web d'informations collectés utilisent le codage UTF8, ce qui entraînera des caractères tronqués lors du processus de conversion

I J'ai récemment travaillé sur un petit projet, et lorsque j'ai rencontré de tels problèmes, je les ai enregistrés sous forme de résumé.
Ce projet est divisé en deux parties, l'une est la collecte de données d'actualité, l'autre est l'examen des informations collectées et enfin génère des fichiers XML.
Une fois les données collectées éditées par l'utilisateur, un fichier ACCESS doit être exporté puis importé dans le système de révision des informations. Le type de champ qui stocke les informations d'actualité dans la bibliothèque ACCESS est le type ntext, tandis que le champ correspondant dans la bibliothèque du système d'audit est le type varchar (max). Après l'importation, il a été constaté que certains caractères vides apparaissaient tronqués, apparaissant sous forme de question. marques (?). En fait, après des tests ultérieurs, il s'avère qu'il ne s'agit pas d'un caractère vide (espace), mais d'un caractère spécial. Que dois-je faire ? Après plusieurs tests, il a été constaté que le type varchar(max) devait être remplacé par le type nvarchar(max), afin que les données importées n'aient plus de tels problèmes.
Cependant, au cours du processus de test ultérieur, il a été constaté qu'après la modification des informations collectées importées (via la fonction d'édition du programme .net), les informations dans la base de données étaient à nouveau tronquées. Après recherche, il a été constaté que l'insertion. La déclaration a été écrite comme ceci. Ce genre de problème ne se produira pas, comme insérer dans le nom de la table (actualités) des valeurs (N'"+valeur mise à jour+""), pourquoi ajouter N ? Allez sur Baidu et vous comprendrez.
À ce stade, dans mon esprit, j'ai finalement ressenti un certain soulagement, mais les problèmes suivants m'ont déprimé...
Les informations examinées doivent être générées au format XML, car de nombreux sites d'informations sont collectés. Le site Web utilise le codage UTF8. , donc des caractères tronqués apparaissent pendant le processus de conversion (toujours causés par le caractère spécial "vide"). Que dois-je faire ? Il est recommandé sur Internet que la conversion d'UTF8 en GB2312 est suffisante, mais en pratique, cela ne peut toujours pas être résolu. Problème, j'ai travaillé dessus toute la matinée pour résoudre ce problème, mais au final il n'y a aucun moyen. Quand j'étais déprimé, j'ai soudain pensé à utiliser la fonction de débogage de VS pour voir ce qu'est ce caractère spécial, et j'ai finalement lu. la valeur de ce champ dans la base de données Après l'avoir retiré, puis converti en un tableau de caractères, content.ToCharArray(); l'a examiné un par un et a constaté que le caractère à l'origine du code tronqué était ' '. à l'espace entre guillemets. Ce n'est pas un espace, mais un espace qui ne peut pas être reconnu dans les caractères spéciaux GB2312, j'ai soudain pensé, puis-je remplacer la valeur de ce caractère par un espace, j'ai agi immédiatement, et bien sûr ? , le problème du code tronqué a été résolu. J'ai perdu une demi-journée sur cette absurdité
Remarque, vous devez utiliser la valeur déboguée (car c'est le véritable caractère spécial qui provoque des caractères tronqués). >

codez comme suit :

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!