当向数据库中写入创建表,并插入中文时,遇到了报错:
ERROR SqlExceptionHelper:147 - Incorrect string value: '\xE6\xB2\xA1\xE5\x90\x83...' for column 'others' at row 1
org.springframework.orm.jpa.JpaSystemException: could not execute statement; nested exception is org.hibernate.exception.GenericJDBCException: could not execute statement
解决方法:
1.自动新建的这张表的character set 没有设置成utf8.
2.服务器向数据库中传输的数据格式没有设置成uft8。因此,先进入数据库:
(1)在cmd命令窗口输入mysql -hlocalhost -uroot -p回车进入mysql数据库;
(2)查看表中的各字段的属性: show full columns from table_name;
如果看到每个字段都是lati, 则执行以下语句:
alter table table_name convert to character set utf8 collate utf8_general_ci;
(3)同时检查一些变量collation_connection、collation_database、collation_server是否都是utf8_general_ci
检查的语句为:show variable like 'collation%';
修改的语句为:set collation_connection=utf8_general_ci
(4)同时检查一些变量character的相关变量是否为utf8_general_ci
检查的语句为:show variable like 'character%';
修改语句如:set character_set_database=utf8;