FastReport完美解决中文乱码问题
作者: 葛屹肃 | 日期: 2018-06-23 | 分类: 个人杂谈
前几天已经安装好了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中文乱码就完美解决了。当然,如果所有控件都重新设置编码会影响效率,建议:针对含有中文字符的控件以控件类型与控件名称进行过滤处理。
版权声明:本文由〖葛屹肃〗发布,转载请注明出处!
文章链接:https://www.geyisu.com/175.html
文章链接:https://www.geyisu.com/175.html