当前位置:首页 > 个人杂谈 > 正文内容

FastReport完美解决中文乱码问题

作者: 葛屹肃 | 日期: 2018-06-23 | 分类: 个人杂谈

前几天已经安装好了FastReport的二维码控件,不过,至真正做报表时,又碰到FastReport中文乱码的问题,这本来是个简单问题,但是,FastReport的资料介绍实在太少,最终还是经过自己不断尝试才真正解决。

FastReport完美解决中文乱码问题

FastReport中文乱码的状况为:静态中文显示正常,动态的中文显示“?”号,如下图:

FastReport中文乱图示

由以上分析得出,猜测是动态生成的时候编码没有设定好,或者是编码乱掉了,其实,这是FastReport的bug,但是FastReport的维护已经处于半停顿状态,因此,这个问题一直没有得到解决。

要解决这个问题也很简单,只需要动态生成后,重新给控件再次设置编码,代码如下:

for i:= 0 to frxReport1.ComponentCount-1 do
begin
if (frxReport1.Components[i] is TfrxMemoView) and ((frxReport1.Components[i] as TfrxMemoView).Tag = 100) then
begin
(frxReport1.Components[i] as TfrxMemoView).Font.Charset := GB2312_CHARSET;
end;
end;

加上以上代码后,中文内容的显示都正常了,如下图所示:

FastReport解决中文乱码后的图示

只需要一段代码,FastReport中文乱码就完美解决了。当然,如果所有控件都重新设置编码会影响效率,建议:针对含有中文字符的控件以控件类型与控件名称进行过滤处理。

版权声明:本文由〖葛屹肃〗发布,转载请注明出处!
文章链接:https://www.geyisu.com/175.html

  • 评论:(0)

已有 0 位网友发表了一针见血的评论,你还等什么?

◎欢迎大家参与讨论