【问题标题】:jasper report missing charactersjasper 报告缺少字符
【发布时间】:2023-03-31 00:42:01
【问题描述】:

我正在使用 JasperReports 报告和 DejaVu Sans 字体。当我尝试打印单词emissão 时,它无法正确打印显示一些丢失的字符,Locale=pt

我确信所有属性文件都是 UTF-8 格式。

jxml 文件也是 UTF-8 格式。 <?xml version="1.0" encoding="UTF-8"?>

是否缺少任何设置?

是否支持字体UTF-8

【问题讨论】:

  • 你用过Font Extensions吗?
  • 不,我使用 jasperreport_font.jar 中已有的默认字体。所以我认为不需要外部添加。
  • 我认为 Jasper 编译器或 pdf 导出器都无法检测到 UTF-8
  • community.jaspersoft.com/questions/530595/… 这是我发现的同样问题。以默认 ASCII 格式而非 UTF8 编码读取的资源。

标签: utf-8 jasper-reports


【解决方案1】:

你检查过这个链接吗? Unicode Sample 它说将编码从 UTF-8 更改为 ISO-8859-1 就足够了。还有一个自定义属性“net.sf.jasperreports.export.character.encoding”。希望对您有所帮助!

【讨论】:

    【解决方案2】:

    我不知道为什么会发生这种情况,但我的解决方案是将 emission = emiss\u00E3o 放在资源属性文件中而不是 emission = emissão 可能是 jasper 报告 lib 仅以 ASCII 格式读取资源文件字节。

    【讨论】:

      【解决方案3】:

      我发现像这样在 textElement 上设置 pdfEncoding 属性很有用:

      <textField>
          <reportElement x="0" y="0" width="554" height="30" uuid="faf3ff08-ecbc-40cb-b82c-529428aadaa4"/>
          <textElement>
               <font size="8" pdfEncoding="Cp1250"/>
          </textElement>
          <textFieldExpression><![CDATA[$P{disclaimer}]]></textFieldExpression>
      </textField>
      

      Cp1250 对应于 Windows-1250,用于中欧国家,例如波兰。设置此属性后,字符又回来了。我想其他编码也应该可以这样做。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-13
        • 2013-11-27
        • 1970-01-01
        相关资源
        最近更新 更多