2011-02-24 2 views
1

J'ai une application qui relie notre système d'assistance technique à TFS (d'une manière à partir de Help Desk vers TFS). Lorsque je crée l'élément de travail dans TFS, dans certaines situations, j'obtiens une erreur de validation "InvalidCharacters".Validation WorkItem des champs "Texte brut"

Le champ que j'utilise est le champ "Description" standard, qui est défini comme "Texte brut" dans la définition de l'élément de travail.

Ceci se passe uniquement sur un enregistrement, donc je suis sûr que ce sont les données, mais je ne peux pas comprendre quel caractère est considéré comme invalide. Y a-t-il des indications sur ce qui déclenchera la validation InvalidCharacters dans les champs "Texte brut"?

Répondre

2

Il semble que ce champ ne puisse pas afficher les caractères ASCII étendus. Il y avait un a avec un accent grave (à) dans la chaîne que j'essayais de sauver.

- EDIT -

Ce fait est devenu encore plus frustrant. La représentation du personnage quand j'ai fait un ToCharArray() était "à", cependant, quand j'ai finalement trouvé l'endroit dans la ficelle où il bombardait, le personnage actuel était une ellipse à un seul caractère (...). Ce qui a probablement été causé par quelqu'un qui copiait et collait de Word dans notre système d'aide pour les commentaires. Ma résolution finale était une rotation de force brute à travers le tableau char, en remplaçant tout caractère qui avait une valeur int supérieure à 127 par quelque chose d'autre (dans mon cas, un point d'interrogation).

0

Un champ 'chaîne' est invalide s'il contient des caractères de contrôle autres que le retour à la ligne, le retour chariot et l'onglet ou s'il contient des caractères de substitution incompatibles. Les champs Longtext (comme le texte en clair) acceptent tout sauf les paires de substitution non concordantes. Assurez-vous que votre copier/coller est traduit en Unicode étant collé dans

Vous pouvez utiliser une fonction Regex pour compresser tous les espaces jusqu'à un caractère « », comme celui-ci.

Regex.Replace(text, @"\s+", " "); 

Bien que réellement enlève plus que ce dont vous avez besoin techniquement, car il supprime le retour à la ligne, le retour chariot et la tabulation.

Espérons que cela aide!