今天在保存数据到数据库是遇到乱码问题,
将<property name="connection.url">jdbc:mysql://localhost:3306/ordermeal?useUnicode=true&characterEncoding=gbk</property>
设置编码解决不了问题,
就觉得在数据库中的编码肯定有问题
于是查看数据库编码
查看数据库编码命令
mysql>show variables like 'character%';
+--------------------------+---------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+
果然和我的编码不同最后把所有编码改成统一的编码就解决了
mysql> SET character_set_client = utf8 ;
修改数据库字符集:
ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];
把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
只是修改表的默认字符集:
ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改字段的字符集:
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
查看数据库编码:
SHOW CREATE DATABASE db_name;
查看表编码:
SHOW CREATE TABLE tbl_name;
查看字段编码:
SHOW FULL COLUMNS FROM tbl_name;
本文详细介绍了在数据库中遇到乱码问题时如何通过检查和修改数据库编码来解决该问题。包括查看数据库编码的方法,以及如何修改数据库、表、字段的字符集,并提供了具体的SQL命令和示例。


被折叠的 条评论
为什么被折叠?



