SAXParser не выдает исключение при обнаружении недопустимого символа - PullRequest
1 голос
/ 27 января 2012

Если я поместил символ utf8 »в файл ansi xml и попытался проанализировать его с помощью SAXParser, то он анализируется без каких-либо ошибок.Почему это не выдает никаких исключений?

образец XML-файла.Сохраните как ANSI кодирование.Chrome не может открыть файл, но saxparser анализирует его без ошибок.

<?xml version="1.0" encoding="UTF-8"?>
 <root date="2010-06-17">
 <product
    id="1 "
    label= « xyz"/>
 </root>

w3c xml validator также не может проверить этот документ.

Ответы [ 2 ]

0 голосов
/ 27 января 2012

»имеет следующий вид:

  • U + 00BB: кодовая точка Unicode
  • c2 bb: кодируется в UTF-8
  • 00 bb: кодируется в UTF-16
  • bb: закодировано в 8859-1 / Windows 1252

Если вы поместите «c2 bb» в файл, который читается как win-1252, он выйдет ».Ошибка не нужна.

0 голосов
/ 27 января 2012

Документ, вероятно, все еще хорошо сформирован.

Я не проверил все наборы символов ANSI, но » (U + 00BB) присутствует в Windows-1252. Если вы сбросите последовательность байтов в кодировке UTF-8 C2 BB в файл в кодировке Windows-1252, это все равно будет допустимая последовательность байтов для этой кодировки. Это будет рассматриваться как последовательность символов » (U + 00C2 U + 00BB).

...