2012-10-23 4 views
0

Mon contenu contient plusieurs caractères de nomenclature (EF BB BF) et je souhaite les supprimer. Les personnages sont au milieu des chaînes que je veux simplement les supprimer tous.Suppression des caractères BOM de la chaîne AJAX

Les données proviennent d'une source JavaScript, que je reçois d'une instance de CKEditor. Ensuite, je POSTE la variable et la lit comme une chaîne sur mon backend et les BOMS sont là. Pour l'instant, ils sont conservés tels quels, mais cela entraîne des erreurs de post-traitement lorsque les caractères sont interprétés et commencent à s'afficher à mi-contenu. Je soupçonne qu'ils proviennent de quelque chose qui a été copypasted dans mon CKEditor.

Je peux parcourir la chaîne char par char, mais je ne sais pas comment comparer avec la nomenclature. Serait-il en quelque sorte possible de comparer les valeurs hexadécimales des octets de chaîne et de comparer les séquences de trois octets?

Répondre

4

Le utf-8 BOM octets se traduit \ufeff. Caractère Unicode "Zero largeur espace de pause", ne peut pas les voir, ne peut pas les entendre. Filtrez-les avec:

var good = bad.Replace("\ufeff", ""); 
+0

Grand succès! Une question cependant, cela pourrait-il causer des problèmes en supprimant d'autres octets qui sont traduits dans le même caractère Unicode? Je doute que je les manquerai s'ils sont enlevés, mais y a-t-il d'autres personnages importants ou qui valent la peine d'être mentionnés? – Nenotlep

+1

Vous ne pouvez pas les voir, vous ne pouvez pas les entendre. –

0

les opérations suivantes:

CleanString = DirtyString.Replace("\u00EF\u00BB\u00BF", null); 
+0

La façon dont je l'ai testé c'était de faire 'chaîne s2 = s.replace (...)' et 'Debug.WriteLine (s2);'. Ensuite, j'ai copié-collé la sortie de ma fenêtre de sortie à Notepad ++ et commuté pour afficher HEX: Je vois toujours la nomenclature. Ai-je essayé mal? – Nenotlep

+0

Voilà comment cela fonctionne pour moi. Peut-être que vous trouvez cela utile (http://stackoverflow.com/questions/2502990/create-text-file-without-bom?rq=1). –

Questions connexes