【发布时间】:2018-10-04 21:03:12
【问题描述】:
我的 FXML 文件采用 UTF-8 格式。 这是代码的相关部分:
<?xml version="1.0" encoding="UTF-8"?>
<Text fx:id="totalSqMGlassText" layoutX="573.0" layoutY="547.0" strokeType="OUTSIDE" strokeWidth="0.0" text="�xB2;" AnchorPane.bottomAnchor="57.0" AnchorPane.leftAnchor="573.0" />
我检查了 UTF-8 代码的二次幂 here 和 here。找到有关 Unicode 字符“上标二”的信息,即二次幂:“UTF-8 (hex) - 0xC2 0xB2 (c2b2)”。我还在stackOverflow 上阅读了这个问题和答案。所以我尝试了这些:
&#x0xC2;
e&#x0xB2;
&#xc2b2;
&#c2b2;
甚至这个:)
&#c2 b2;
如果我使用标准文本一切正常,但如果我尝试使用上述特殊字符并转义,我会收到此异常:
javafx.fxml.LoadException:
...
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[142,121]
Message: The character reference must end with the ';' delimiter.
或者这个
Caused by: javax.xml.stream.XMLStreamException: ParseError at
[row,col]:[142,118]
Message: A decimal representation must immediately follow the "&#" in a character reference.
每次我使用分号(有一次我尝试过,即使没有分号,也有两个分号:))。 我认为第二个例外是显而易见的。在我绝望中,我只是尝试了几次盲目地输入正确的转义,所以我将转义用于十进制表示而不是十六进制(如果我错了,请纠正我)。 所以我的问题是:
你知道我做错了什么吗?在这种情况下正确的转义和代码是什么?通常,通过 FXML/XML 表示幂和指数的正确方法是什么?提前谢谢你。
【问题讨论】:
标签: xml unicode utf-8 javafx-8 fxml