程序数据集,读取的数据编码是gb2312,运行后报表显示的是中文乱码还有�,不知道要怎么转码?

image.png有没有大哥能帮忙看看

FineReport yzm832476 发布于 2021-2-24 16:08
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
yzm832476Lv3见习互助
发布于2021-2-25 17:57

问了帆软的客服,做了如下操作,就成功解决乱码了:修改设计器启动参数,在 %FR_HOME%bin\designer.vmoptions 文件中添加参数:-Dfile.encoding=UTF-8。

最佳回答
0
snrtuemcLv8专家互助
发布于2021-2-24 16:12(编辑于 2021-2-24 16:51)

编码改成UTF-8试试

image.png

  • yzm832476 yzm832476(提问者) 改成UTF-8还是乱码。还有一点很奇怪,比如我自定义一个字符串“中国”,编码也是GB2312,就可以正常显示
    2021-02-24 16:48 
  • snrtuemc snrtuemc 回复 yzm832476(提问者) 检查下数据库连接,改成同样的编码
    2021-02-24 16:51 
  • yzm832476 yzm832476(提问者) 回复 snrtuemc 我不是用数据库连接读取数据的,用的是程序数据集,文档:简单程序数据集 - FineReport帮助文档 - 全面的报表使用教程和学习资料 https://help.fanruan.com/finereport/doc-view-650.html
    2021-02-24 17:25 
  • yzm832476 yzm832476(提问者) 回复 snrtuemc 后来我就在程序数据集里,把从数据库中获取的数据,转换成UTF-8了,结果还是乱码,而且乱得还和GB2312不一样,datas[1] = new String(activity_theme2.toString().getBytes(\"GB2312\"),\"utf-8\"); 我转码的语句是这样写的
    2021-02-24 17:34 
最佳回答
0
烟尘Lv6高级互助
发布于2021-2-24 17:00(编辑于 2021-2-24 17:01)

浏览器的编码查看了吗?是极速模式吗?尽量用谷歌内核的浏览器,别用ie和兼容模式

再就是查看一下数据库的编码格式。

默认程序数据集是不需要重新设置编码的

  • yzm832476 yzm832476(提问者) 用的是360极速浏览器的极速模式。网页编码格式是UTF-8,是他自动选择的
    2021-02-24 17:27 
  • 烟尘 烟尘 回复 yzm832476(提问者) 那就是数据库编码的问题了
    2021-02-24 17:30 
  • yzm832476 yzm832476(提问者) 有一点很奇怪,比如我自定义一个字符串“中国”,编码也是GB2312,就可以正常显示
    2021-02-24 17:31 
  • yzm832476 yzm832476(提问者) 回复 烟尘 我从数据库中读取的数据类型也是GB2312,我自己定义的字符串“中国”也是GB2312,但是偏偏就是数据库中读取的会乱码
    2021-02-24 17:31 
  • yzm832476 yzm832476(提问者) 回复 烟尘 后来我就在程序数据集里,把从数据库中获取的数据,转换成UTF-8了,结果还是乱码,而且乱得还和GB2312不一样,datas[i][1] = new String(activity_theme2[i].toString().getBytes(\"GB2312\"),\"utf-8\"); 我转码的语句是这样写的
    2021-02-24 17:34 
  • 2关注人数
  • 405浏览人数
  • 最后回答于:2021-2-25 17:57
    请选择关闭问题的原因
    确定 取消
    返回顶部