|
|
导航: |
论坛 -> 报表专区
斑竹:sunyesy,iamdream |
|
作者: |
|
2008/4/22 22:48:59 |
标题: |
FastReport4.5 中文显示 解决方案 |
浏览:3032 |
|
加入我的收藏 |
楼主: |
最近下了个FastReport4.5FS,感觉还不错 但是,很快就遇到很郁闷的事情了。 首先发现的是字段标题是“姓名”的时候,预览时候很正常,但是运行的时候就莫名其妙消失了。。。 继而发现,有很多中文都是这么不见得,甚至有空格都会导致这种情况发生。。。 幸而是FS,研究了一天FS后发现,问题出在FR4.5的编码上了 FR4.5采用了UTF8编码,但是Delphi默认的编码似乎是Ansi编码 在xmlToObj和objToXml函数中,可以明显看到其中进行了编码的转换 UTF8Encode后的UTF8String似乎直接当作了String类型来用,后面的一系列调用Stream进行操作时,不知道Delphi会自动对其处理 没有详细再研究下去。。。时间不允许那么多了。 针对这个问题的简易解决方案是: 1.把报表模板存为.fr3的格式 2.用NotePad++或者notepad打开.fr3报表,然后以UTF8编码另存回去,这样就把其中的UTF8编码修正正确了。 3.显示报表时动态加载.fr3 ,frxReport.LoadFromFile('such.fr3') 这样反正凑活够用了,其它的有空再慢慢研究吧。 来自 http://user.qzone.qq.com/149718095/blog/1208875199
----------------------------------------------
- |
作者: |
|
2008/5/3 22:49:37 |
1楼: |
frxUnicodeUtils单元下: 把TWideStrings类的ReadDataW和WriteDataW函数中关于Utf8的转换去掉
具体是:
ReadDataW: //Add(Utf8Decode(Reader.ReadString)); Add(Reader.ReadString);
WriteDataW: //Writer.WriteString(Utf8Encode(Get(I))); Writer.WriteString(Get(I));
----------------------------------------------
还得继续使用DELPHI
|
作者: |
|
2008/10/16 14:50:03 |
2楼: |
不行呀,会全部变为乱码啊!
----------------------------------------------
-
|
|