Проблема с документом: неверный байт 3 из 3-байтовой последовательности UTF-8

10839
joe

Я пытаюсь использовать документ XML, но сталкиваюсь с этой ошибкой:

Invalid byte 3 of 3-byte UTF-8 sequence 

Мой документ выглядит примерно так ниже, но с большим количеством тегов и контента. Пожалуйста, не сосредотачивайтесь на документе ниже, хотя. Я использую несколько документов с этим форматом. Я считаю, что это символ в моем документе, который является недействительным, но я просто не знаю, как найти его, потому что он очень большой.

Любые идеи или инструменты, которые я мог бы использовать? Благодарю.

Спасибо!

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN" "file:C:/Documentum/Viewed/map.dtd"> <map xmlns:dctm="http://www.documentum.com" dctm:obj_status="Read-Only" dctm:obj_id="09002af8800af696" dctm:version_label="CURRENT" xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/"> <title>Overview of the Commercial General Liability (CGL) Insurance Coverages </title><moreTagsHere><!-- more tags here... --></moreTagsHere> </map> 
2
Какое приложение вы используете для создания документа? Какое приложение вы используете, чтобы «использовать» документ? heavyd 15 лет назад 0

6 ответов на вопрос

1
joe

В моем xml-файле была неправильная вьющаяся цитата.

я тоже. спасибо за размещение в качестве возможного ответа. Matt Felzani 9 лет назад 0
0
Chris W. Rea

Я бы попробовал XMLStarlet :

[...] XMLStarlet - это набор утилит командной строки (инструментов), которые можно использовать для преобразования, запроса, проверки и редактирования документов и файлов XML с использованием простого набора команд оболочки аналогично тому, как это делается для простых текстовых файлов с использованием UNIX-команды grep, sed, awk, diff, patch, join и т. Д. [...]
[ Акцент мой ]

0
salmonmoose

У меня есть подозрение, что вы можете использовать инструмент от Microsoft.

По моему опыту, Expression Web использовал для размещения информации заголовка в текстовых файлах, чтобы идентифицировать их в том формате, в котором они когда-либо были - ничто иное не распознало их, и они отображались как случайные символы. Это было особенно проблема с PHP, поскольку он сломал включает.

0
Paxxi

Вы, вероятно, использовали редактор, который добавляет метку порядка байтов (BOM) в файл. Многие / большинство редакторов XML / редакторов веб-сайтов позволяет сохранять документ с / без BOM. Проверьте параметры сохранения в любом редакторе, который вы использовали.

Вы, вероятно, должны удалить спецификацию, чтобы избежать ошибки.

Если ваш редактор не поддерживает эту опцию, я могу порекомендовать отличный Notepad ++

Я никогда не видел, чтобы спецификации UTF-8 были запрещены спецификациями XML (и, конечно, другие спецификации вполне подходят). Фактически, автоопределение задокументировано, чтобы разрешить использование спецификации, хотя это не требуется, так как парсер должен знать, как обнаружить первый ` Arjan 15 лет назад 0
Мой плохой, обновил пост, чтобы удалить неверную информацию. У меня есть память о получении ошибок на бомбе, хотя. Это спецификации XHTML, которые могут запретить это? Paxxi 15 лет назад 0
Может быть, у вас была спецификация в каком-то истинном значении Unicode String? Или в базе данных значение? Или при передаче по HTTP с использованием Content-Type text / xml тогда (авторитетный) набор символов по умолчанию имеет значение US-ASCII в соответствии с http://www.ietf.org/rfc/rfc2046, поэтому процессор должен игнорировать (или, возможно, даже запретить; см. http://www.ietf.org/rfc/rfc2376) спецификация, когда кодировка не указана. (Использование application / xml вместо text / xml решает этот US-ASCII по умолчанию, но, конечно, нужно просто указать кодировку для начала.) Arjan 15 лет назад 0
0
Arjan

Забудьте тот факт, что это XML, вам нужно проверить UTF-8. Может быть, просто открыть в Firefox и найти символ?? В противном случае смотрите проверку UTF-8 на переполнение стека.

0
Alfonso Leon

If you're using tomcat you proably need to set up the encoding, I am using tomcat as a service in Windows and in the configuration options the following commmand did the trick for me:

Dfile.encoding=UTF-8 

Hope it helps.

Похожие вопросы