如何在FXML / XML中表示幂和指数,例如Unicode字符“上标二”?

时间:2018-10-04 21:03:12

标签: xml unicode utf-8 javafx-8 fxml

我的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="&#x0xB2;" AnchorPane.bottomAnchor="57.0" AnchorPane.leftAnchor="573.0" />

我检查了UTF-8代码的第二次幂herehere。找到有关Unicode字符“上标二”的信息,即第二个幂:“ UTF-8(十六进制)-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表示幂和指数的正确方法是什么?预先谢谢你。

1 个答案:

答案 0 :(得分:0)

&#x0xB2;&#xb2;替换为Unicode SUPERSCRIPT TWO(²)。