- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经完成了我的作业,特别是:
1) 阅读完整的 FASTREPORT 4 手册。它没有提到 UTF8,也没有提到 Unicode 支持
2)在这里寻找答案
3)谷歌搜索了一下
如果我设置一个文本字段并用泰语字符填充它,它们会完美打印,所以FastReport可以处理Unicode字符,至少它可以打印它们。
如果我尝试使用 frxUserDataSet 提供的回调“传递”一个值,那么我看到的是一些乱码的非 unicode 文本。特别是,如果我通过了,例如一个由相同的 10 个泰语字符组成的字符串,我看到相同的 3 或 4 个乱码字符“集”重复了十次,所以我确信数据传递正确,但是 FastReport 可能无法知道它们应该是作为 Unicode 处理。
回调要求传回的数据是“variant”类型,所以我想将它们转换为任何类型是完全没有用的,因为variant会接受它们中的任何一个。
我忘了提及,我从 MySql DB 获取字符串,并且数据存储为 UTF8,我什至不将数据复制到本地变量中:我从 DB 获取的内容放入变体中。
有没有办法强制 FastReport 将收到的数据打印为 Unicode?
谢谢
最佳答案
是的,带有 Delphi7 的 FR4 使用 frxUserDataSet 支持 UTF8。
仅供将来引用:
1)您必须将数据库(在我的例子中为 MySql)设置为使用 UTF8
2)您必须将用于访问数据库的组件中的字符集设置为utf8(在我的例子中为“DAC for MySql”,该属性称为ConnectionCharacterSet)
3) 在所有 frxUserDataSet 回调中,在设置“value”变量之前,您必须使用 Utf8decode Delphi 系统例程转换您拥有的任何内容,如下所示:
value := Utf8decode(fReports.q1.FieldValueByFieldName('yourDBfield'));
其中 fReports 是表单名称,q1 是用于访问数据库的组件。
我一直读到,使用 D7 和 Unicode 几乎是不可能的,但是 - 只要你使用 XP 及更高版本 - 从我所看到的来看,这只是更难。不幸的是,我必须使用XP、D7并且无法升级。但是,正如我所说,我很快就习惯了解决这些问题,所以,在未来,我希望能够像每个人一直在这里帮助我一样回馈一些帮助:)
关于delphi - Fast Report 4 (Delphi 7) 是否支持使用 frxUserDataSet 的 UTF8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24139306/
我已经完成了我的作业,特别是: 1) 阅读完整的 FASTREPORT 4 手册。它没有提到 UTF8,也没有提到 Unicode 支持 2)在这里寻找答案 3)谷歌搜索了一下 如果我设置一个文本字段
我是一名优秀的程序员,十分优秀!