数据库插入中文数据变成问号,数据库属性已设置UTF-8

时间:2021-01-07 07:35:39
如题,我的项目里代码的编码也是UTF8,debug时从js一直到serviceimpl层中文数据都为正常,直接在数据库查询语句插入中文则乱码,但是设计表模式下输入中文不会乱码,读出来也不会乱码

7 个解决方案

#1


用 SQL profiler 跟踪一下,看看提交到数据时,是乱码,还是正常的数据; 乱码的可能性比较大

#2


我想问问如果是乱码的话要怎么改啊

#3


乱码的话,就要分析一下 ,你从页面上到生成 可能执行的 SQL 这些所有的步骤中,哪一步出了问题;

比如,js 调用 restful 时,参数是否正常, action 调用  service 时,是否正常,service 调用 dao 时,是否正常;

#4


TAT我debug了下,直到dao层数据也是正常的,mapper也设置了utf-8,不知道到底是哪里出问题了呀ORZ

#5


应该说都是问号,不是乱码

#6


引用 5 楼 jiujiujiuji 的回复:
应该说都是问号,不是乱码

问号就是乱码。
1、数据库的default-character-set保证是urf-8
2、创建库的时候要制定字符集是utf8_general_ci
3、创建表的时候也要指定字符集CHARSET=utf8

#7


alter database[你的数据库名] set single_user with rollback immediate;
GO
alter database[你的数据库名] collate Chinese_PRC_CI_AS;
go
alter database[你的数据库名] set multi_user;
go
是数据库字符集的问题。你试试上面的代码。

#1


用 SQL profiler 跟踪一下,看看提交到数据时,是乱码,还是正常的数据; 乱码的可能性比较大

#2


我想问问如果是乱码的话要怎么改啊

#3


乱码的话,就要分析一下 ,你从页面上到生成 可能执行的 SQL 这些所有的步骤中,哪一步出了问题;

比如,js 调用 restful 时,参数是否正常, action 调用  service 时,是否正常,service 调用 dao 时,是否正常;

#4


TAT我debug了下,直到dao层数据也是正常的,mapper也设置了utf-8,不知道到底是哪里出问题了呀ORZ

#5


应该说都是问号,不是乱码

#6


引用 5 楼 jiujiujiuji 的回复:
应该说都是问号,不是乱码

问号就是乱码。
1、数据库的default-character-set保证是urf-8
2、创建库的时候要制定字符集是utf8_general_ci
3、创建表的时候也要指定字符集CHARSET=utf8

#7


alter database[你的数据库名] set single_user with rollback immediate;
GO
alter database[你的数据库名] collate Chinese_PRC_CI_AS;
go
alter database[你的数据库名] set multi_user;
go
是数据库字符集的问题。你试试上面的代码。