Проверка WorkItem полей "Простой текст"
У меня есть приложение, которое связывает нашу систему службы поддержки с TFS (один путь от службы поддержки до TFS). Когда я создаю рабочий элемент в TFS, в некоторых ситуациях я получаю ошибку проверки "InvalidCharacters".
Поле, которое я использую, является стандартным полем "Описание", которое определяется как "Простой текст" в определении рабочего элемента.
Это происходит только для одной записи, поэтому я уверен, что это данные, но я не могу понять, какой символ считается недействительным. Есть ли какие-либо рекомендации по поводу того, что вызовет проверку InvalidCharacters в полях "Простой текст"?
2 ответа
Похоже, что это поле не может отображать расширенные символы ASCII. Был один с акцентом могила (а) в строке, которую я пытался спасти.
-- РЕДАКТИРОВАТЬ --
Это на самом деле стало еще более неприятным. Представление персонажа, когда я сделал ToCharArray()
был "а", однако, когда я наконец нашел место в строке, где оно бомбардировалось, реальный символ был односимвольным эллипсом (...). Что, вероятно, было вызвано тем, что кто-то копировал и вставлял из Word в нашу систему поддержки для комментариев.
Моим окончательным разрешением было вращение методом грубой силы через массив символов, заменив любой символ, чье значение int больше 127, чем-то другим (в моем случае это знак вопроса).
Поле 'string' недопустимо, если оно содержит управляющие символы, отличные от новой строки, возврата каретки и табуляции или если оно содержит несовпадающие суррогатные символы. Поля длинного текста (например, открытый текст) принимают все, кроме несоответствующих суррогатных пар. Убедитесь, что ваша копия / вставка приводит к вставке Unicode.
Вы можете использовать функцию Regex, чтобы сжать все пробелы до символа " ", например:
Regex.Replace( text, @"\s+", " " );
Хотя это на самом деле лишает вас больше, чем вам технически необходимо, так как оно требует перевода строки, возврата каретки и табуляции.
Надеюсь это поможет!