【问题标题】:How can I represent powers and exponents such as Unicode character 'superscript two" in FXML/XML?如何在 FXML/XML 中表示幂和指数,例如 Unicode 字符“上标二”?
【发布时间】: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="&#x0xB2;" AnchorPane.bottomAnchor="57.0" AnchorPane.leftAnchor="573.0" />

我检查了 UTF-8 代码的二次幂 herehere。找到有关 Unicode 字符“上标二”的信息,即二次幂:“UTF-8 (hex) - 0xC2 0xB2 (c2b2)”。我还在stackOverflow 上阅读了这个问题和答案。所以我尝试了这些: &amp;#x0xC2; e&amp;#x0xB2; &amp;#xc2b2; &amp;#c2b2; 甚至这个:) &amp;#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 "&amp;#" in a character reference.

每次我使用分号(有一次我尝试过,即使没有分号,也有两个分号:))。 我认为第二个例外是显而易见的。在我绝望中,我只是尝试了几次盲目地输入正确的转义,所以我将转义用于十进制表示而不是十六进制(如果我错了,请纠正我)。 所以我的问题是:

你知道我做错了什么吗?在这种情况下正确的转义和代码是什么?通常,通过 FXML/XML 表示幂和指数的正确方法是什么?提前谢谢你。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 2012-05-20
      • 2021-09-15
      • 2010-11-13
      • 1970-01-01
      相关资源
      最近更新 更多