使用填报功能,在表单中录入的汉字,写入数据库是乱码,是什么原因,如何解决?

在使用填报功能,在设计好了的表单里,在预览模式下填报表单,录入的汉字,咋写入数据库后,显示是乱码。

但是检查了数据库的编码规则,已经是utf8格式,数据库的版面是 mysql5.7,

微信截图_20231012110239.jpg

请问这个写入乱码的问题是什么原因造成的,又该如何解决?

------------------------------------------------------------------------------------------

微信截图_20231012111312.jpg

检查了系统管理中的【数据连接管理】,也按照提示进行了修改,但乱码问题依然存在。。。。

------------------------------------------------------------------------------------------

乱码的截图如下:

微信截图_20231012111838.jpg

测试过英文,录入英文和录入数值是正常的,只有录入汉字是乱码。。。

-----------------------------------------------------------------------------------------

也去查了mysql的数据库后台,也是乱码,而且乱码还跟帆软report系统里的乱码不一样。。。

微信截图_20231012112312.jpg

------------------------------------------------------------------------------------------

然后又检查的 设计器里的【定义数据连接】

微信截图_20231012112632.jpg

URL的内容如下:

jdbc:mysql://localhost:3306/mydatabase?generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai

------------------------------------------------------------------------------------------

【定义数据连接】URL处正确的写法如下:

jdbc:mysql://localhost:3306/mydatabase?generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=Asia/Shanghai

-----------------------------------------------------------------------------------------

问题已解决,截图如下:

FineReport kevin0428 发布于 2023-10-12 11:07 (编辑于 2023-10-12 11:48)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
kevin0428Lv2见习互助
发布于2023-10-12 11:50(编辑于 2023-10-12 11:55)

感谢各位老师的帮助和解答,问题已解决,

【定义数据连接】URL处正确的写法如下:

jdbc:mysql://localhost:3306/mydatabase?generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=Asia/Shanghai

如图所示:

最佳回答
0
龙侃飞Lv3见习互助
发布于2023-10-12 11:09

可以看一下乱码截图吗

  • kevin0428 kevin0428(提问者) 我补充了完善了问题,把乱码的截图上传了
    2023-10-12 11:20 
最佳回答
0
MV科技Lv5见习互助
发布于2023-10-12 11:22(编辑于 2023-10-12 11:30)

看看你的数据连接,mysql的要加转义utf_8。数据库后面加上?useUnicode=true&characterEncoding=UTF-8image.png

  • kevin0428 kevin0428(提问者) jdbc:mysql://localhost:3306/mydatabase?generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
    2023-10-12 11:29 
  • kevin0428 kevin0428(提问者) 【定义数据连接】URL的内容如下: jdbc:mysql://localhost:3306/mydatabase?generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai 应该改成啥?
    2023-10-12 11:30 
  • MV科技 MV科技 回复 kevin0428(提问者) 数据库名称后面加,编码默认
    2023-10-12 11:30 
最佳回答
0
牛~~~Lv6中级互助
发布于2023-10-12 11:26

数据连接那里替换这个看看,这个utf8大写  characterEncoding=UTF-8

  • kevin0428 kevin0428(提问者) 【定义数据连接】URL的内容如下: jdbc:mysql://localhost:3306/mydatabase?generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=Asia/Shanghai 应该改成这样?
    2023-10-12 11:31 
  • 牛~~~ 牛~~~ 回复 kevin0428(提问者) UTF-8
    2023-10-12 11:34 
  • kevin0428 kevin0428(提问者) 我按上面的这个改了,把utf改成大写的UTF后,我的数据库后台汉字显示正常了,但是 report设计器下里,数据库查询的预览里,还是乱码格式。。。
    2023-10-12 11:34 
  • kevin0428 kevin0428(提问者) 回复 牛~~~ jdbc:mysql://localhost:3306/mydatabase?generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=Asia/Shanghai 【定义数据连接】URL的内容改成上面这样就的就可以了,非常感谢。就写成UTF8就可以。
    2023-10-12 11:45 
最佳回答
0
ID1208Lv6高级互助
发布于2023-10-12 11:34(编辑于 2023-10-12 11:50)

查看一下数据库字段类型,改为nvarchar试试,原来的数据清除掉,然后重新录入保存看看

不会是UTF-8 大写?

最佳回答
0
BrmiseLv6见习互助
发布于2023-10-12 11:47

把定义数据连接里的url后面加上useUnicode=true&characterEncoding=UTF-8

  • kevin0428 kevin0428(提问者) UTF8就行,加了中间的“-”,反而又变回乱码了,不知道为何。。。
    2023-10-12 11:49 
  • 5关注人数
  • 475浏览人数
  • 最后回答于:2023-10-12 11:55
    请选择关闭问题的原因
    确定 取消
    返回顶部