2010-10-08 5 views
2

J'ai un fichier texte (UTF-8). Le contenu de ce fichier est extrait des documents de texte riche, ce pourrait être MS Word, PDF, HTML ou n'importe quoi. Je dois passer ce contenu à un service Web, mais la plupart du temps il contient des caractères non valides comme le flux de formulaire ou null. Ce qui se passe maintenant, c'est quand je passe le contenu du fichier, contenant un caractère invalide, au service Web, il lance une exception (pas un caractère XML valide).Caractères XML non valides

Comme j'ai trouvé quelques caractères qui ne sont pas valides pour XML mais que je peux avoir une bonne fonction .NET, nettoyer la chaîne et supprimer tous les caractères invalides ou je peux avoir une liste de caractères non valides pour tout site authentique.

Merci pour votre aide à l'avance.

Répondre

0

S'il est important d'envoyer le contenu d'un fichier sans aucune modification, la meilleure solution est d'échapper au contenu. Si ce n'est pas le cas, essayez d'utiliser la méthode XmlConvert.IsXmlChar, cela aide à vérifier l'exactitude d'un personnage. Vérifiez this my answer pour les exemples de code.

0

Probablement le meilleur moyen est d'encoder le texte entier dans Base64 comme exemple.

http://en.wikipedia.org/wiki/Base64

Cordialement,

+0

Merci pour votre replay mais je peux garder les choses en UTF-8 et juste le nettoyer, en utilisant une expression régulière ou quoi que ce soit. Mieux s'il y a une autre fonction dans la construction, je suis également heureux d'écrire ma fonction, mais pour cela j'ai besoin d'une liste de caractères invalides. –

0

http://java.net/jira/browse/JAXB-614

Ce lien vous aidera pour l'ensemble. L'ensemble des caractères XML non valides est: '\ u0000', '\ u0001', '\ u0002', '\ u0003', '\ u0004', '\ u0005', '\ u0006', '\ u0007', ' \ u0008 ',' \ u000B ',' \ u000C ',' \ u000E ',' \ u000F ',' \ u0010 ',' \ u0011 ',' \ u0012 ',' \ u0013 ',' \ u0014 ',' \ u0016 ',' \ u0016 ',' \ u0017 ',' \ u0018 ',' \ u0019 ',' \ u001A ',' \ u001B ',' \ u001C ',' \ u001D ',' \ u001E ',' \ u001F ',' \ uFFFE ',' \ uFFFF '

Questions connexes