Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ASCII字符读取问题:欧元符号变空_Java_Xml_Xsd_Xml Parsing_Ascii - Fatal编程技术网

Java ASCII字符读取问题:欧元符号变空

Java ASCII字符读取问题:欧元符号变空,java,xml,xsd,xml-parsing,ascii,Java,Xml,Xsd,Xml Parsing,Ascii,如何将€;从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.intern

如何将€;从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>

勇
木金
mkyong
100000
低的
尹芳
芳芳
200000

你好,史莱雅

我认为您的xml版本可能使用了错误的十六进制字符。 试试
和#8364。
下面的链接有一个巨大的文本墙,基本上描述了你的确切问题

:)

祝你好运


Jesper首先,€不是有效的ASCII字符。真正的ASCII是一个7位字符集,比欧元符号的发明早30多年

其次,拉丁语1(ISO/IEC 8859-1)中也没有欧元。如果在8位ISO/IEC 8859字符集中需要欧元,则需要使用ISO-8859-15。代码为
0xA4
164
十进制

在Unicode中,欧元的代码点是
U+20AC
。可以使用十六进制字符实体语法用XML编写<代码>€

注:

  • 十六进制数字不区分大小写
  • 您还可以使用十进制字符实体语法<代码>€,但我更喜欢十六进制格式,因为它更符合Unicode代码图表
或者,您可以使用XML/HTML命名的字符实体
&euro。。。假设您的XML解析器理解它


最后,因为您已经指定UTF-8作为XML文档的编码,所以您应该能够将一个文本字符粘贴到文档中。。。假设您正在使用支持UTF-8的编辑器进行编辑。(但这也有缺点……)


(XML
id
中可以使用的字符有限制,但允许使用欧元字符。)



对于记录,使用
和#128字符实体实际上是指一个非打印C1控制字符。

您应该使用unicode“\\u20AC”输入一些代码来解析树?
&x20AC(基数16)或
(基数10)。是。我建议使用十六进制形式,因为这是Unicode标准的首选符号。