У нас есть приложение, которое берет текстовую строку, введенную пользователем в веб-форму, и упаковывает ее в XML. Просто чтобы немного запутать, XML отправляется как тело сообщения электронной почты Outlook.
Поскольку пользователи могут вставлять в веб-форму практически все, что угодно (обычно из Word), текстовая строка может содержать не-ASCII (7-битные) символы, например те, которые используются для открытия и закрытия двойных кавычек.
Строка передается по электронной почте без изменений, но когда мы используем синтаксический анализатор Microsoft XML, он жалуется (совершенно правильно), что в XML содержатся недопустимые символы.
Быстрое исправление - поместить кодировку = "iso-8859-1" в заголовок. Тем не менее, мне интересно, было бы лучше кодировать XML-файл в истинном формате UTF-8 с самого начала, так как я читал статьи, в которых утверждается, что было бы лучше для более гармоничного мира, если бы каждый XML-документ был закодирован в UTF-8.
Но ... возникнут ли у нас проблемы, поскольку документ XML фактически передается через текст сообщения электронной почты? Я понимаю, что UTF-8 - это система кодирования с переменной длиной байта, которую я предполагаю использовать 7-битный ASCII и escape-символы для обозначения «данных больше».
Другой вариант - установить UTF-8, но заменить не-ASCII-символы на & # nnn; формат.
Любые советы по этой довольно сложной области приветствуются.
Приветствия, Роб.