我的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(十六进制)-0xC2 0xB2(c2b2)”。我还在stackOverflow上阅读了此问题和答案。所以我尝试了这些:
�xC2;
e�xB2;
슲
&#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表示幂和指数的正确方法是什么?预先谢谢你。
答案 0 :(得分:0)
将�xB2;
用²
替换为Unicode SUPERSCRIPT TWO
(²)。