Xml 如何使用ApacheFop显示Unicode字符?显示“&引用;而不是性格。

Xml 如何使用ApacheFop显示Unicode字符?显示“&引用;而不是性格。,xml,xsl-fo,apache-fop,Xml,Xsl Fo,Apache Fop,我一直在尝试插入一个Unicode字符∇ 或▽, 它显示在ApacheFop生成的PDF中 这就是我目前所做的: 首先,您必须知道表示字符的正确Unicode码点。根据本基本帮助,Unicode码点可以在Unicode.org中的数学运算符列表中找到。代码是∇∇ 纳布拉,我也可以用▽▽ 向下的三角形 在找到正确的代码后,我必须选择一种包含必要字形的字体,并且Adobe PostScript和PDF规范必须指定每个PostScript解释器和PDF阅读器都可以使用的字体,因

我一直在尝试插入一个Unicode字符∇ 或▽, 它显示在ApacheFop生成的PDF中

这就是我目前所做的:

  • 首先,您必须知道表示字符的正确Unicode码点。根据本基本帮助,Unicode码点可以在Unicode.org中的数学运算符列表中找到。代码是
    ∇ 纳布拉,我也可以用
    ▽ 向下的三角形

  • 在找到正确的代码后,我必须选择一种包含必要字形的字体,并且Adobe PostScript和PDF规范必须指定每个PostScript解释器和PDF阅读器都可以使用的字体,因此我在列表中搜索,字体符号包含∇<代码>∇,(无字体包含▽<代码>▽;已丢弃)

  • 搜索之后,我认为应该在xsl:fo中使用的结果代码是:

    
    ∇;
    
  • 问题是当它生成PDF时,结果不是我所期望的”∇", 但是它没有显示“?”,我读到当它不能显示字符时通常显示“#”,但我的代码显示“?”

  • 我使用的是ApacheFop0.95,我怀疑是这个版本导致了问题,我应该更新到1.0,但目前这是生产中使用的版本,团队负责人说目前很难升级它

  • 这就是问题所在,可能是版本之外的其他东西?可能是我忘了做的傻瓜?
    如何使用Apache fop显示Unicode字符?

    尝试使用符号的十进制值(我认为您不需要符号字体系列): ∇


    对于每个需要知道特殊符号值的人,你都可以找到它们。

    我在FOP1.0和FOP.95中都尝试了你的
    fo:block
    代码。它在两个版本中都运行良好。你有权访问stderr吗?如果有字体或字形问题,你应该会得到警告。@DevNull实际上,我还没有在FOP1.0中测试过,只有FOP.95,我开始学习这一点,你能告诉我如何访问stderr以查看它是否是字体或字形问题吗?可能你是在Eclipse这样的IDE中进行开发的。无论何时运行代码,输出都会发送到控制台;默认情况下(至少在Eclipse中)将在该控制台中将stderr显示为红线。可能您的FOP配置中没有合适的字体来替代符号字体,或者您的PDF阅读器对符号字体有一些问题。@Giole我同意您的第一句话,可能FOP配置中没有合适的字体,我刚刚结束使用svg绘制我做了所有这些研究来避免使用svg,但最后我无法解决它,顺便说一句,我不再使用xsl:fo了。
     <fo:block font-family="Symbol">
     &#x2207;
     </fo:block>
    
    &#8711;