Проблема чтения символов ASCII: символ евро становится пустым - PullRequest
0 голосов
/ 25 февраля 2019

Как я могу прочитать €; из XML-файла в Java

дает мне ошибку.Я хочу, чтобы € напечатали

org.xml.sax.SAXParseException; systemId: file:/C:/Users/stikkoo/Desktop/product.xml; lineNumber: 9; columnNumber: 18; The character reference must end with the ';' delimiter.
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)

Мой фрагмент XML:

<?xml version="1.0" encoding="UTF-8"?>
<company>
    <staff id="1001">
        <firstname>yong</firstname>
        <lastname>mook kim</lastname>
        <nickname>mkyong</nickname>
        <salary>100000</salary>
    </staff>
    <staff id="&#128;">
        <firstname>low</firstname>
        <lastname>yin fong</lastname>
        <nickname>fong fong</nickname>
        <salary>200000</salary>
    </staff>
</company>

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Прежде всего, € не является допустимым символом ASCII.Real ASCII - это 7-битный набор символов, который предшествовал изобретению символа € на 30+ лет.

Далее, € также отсутствует в LATIN-1 (ISO / IEC 8859-1).Если вам требуется € в 8-битном наборе символов ISO / IEC 8859, вам нужно использовать ISO-8859-15.Код является 0xA4 или 164 десятичным.

В Unicode кодовая точка для € равна U+20AC.Это может быть написано в XML с использованием шестнадцатеричного символьного синтаксиса объекта;&#x20AC;.

Примечание:

  • Шестнадцатеричные цифры не чувствительны к регистру.
  • Вы также можете использовать синтаксис десятичной символьной сущности;&#8364;, но я предпочитаю шестнадцатеричную форму, потому что она лучше согласуется с диаграммами кода Юникода.

В качестве альтернативы, вы можете использовать именованную сущность XML / HTML &euro; ... при условии, что вашаСинтаксический анализатор XML это понимает.


Наконец, поскольку вы указали UTF-8 в качестве кодировки для вашего XML-документа, вы должны иметь возможность вставлять буквенный символ € в документ... при условии, что вы редактируете его с помощью редактора с поддержкой UTF-8.(Но это тоже имеет недостатки ...)


(Существуют ограничения на символы, которые вы можете использовать в XML id, но символ € разрешен.)


Для записи, символьная сущность &#128;, которую вы пытаетесь использовать в своем документе, фактически ссылается на непечатный управляющий символ C1.

0 голосов
/ 25 февраля 2019

Привет, Шрейя !

Я думаю, у тебя может быть неправильный шестнадцатеричный символ для твоей версии xml.Попробуйте &#x20AC; или &#8364;.Следующая ссылка имеет огромную текстовую стену, описывающую в основном ваш точный вопрос!

Ссылка для решения всех ваших проблем :)

Удачи с этим!

Jesper

...