数据库与java 字符集之间的关系
通过 show variables like ‘%char%’; 可以查看与数据库相关的所有字符集。
- ‘character_set_client’, 代表的是客户端的字符集(可以是命令行,java程序,mysql workbench或者其他连接数据库的软件)
- ‘character_set_connection’代表的是连接的字符集
- ‘character_set_database’代表的是数据库的字符集
- *’character_set_filesystem’代表的是文件系统的字符集
- ‘character_set_results’代表的是查询结果的字符集
- ‘character_set_server’代表的是服务器的字符集
- ‘character_set_system’代表的是文件系统的字符集
- ‘character_sets_dir’代表的是数据库字符集的文件位置
分析
文件系统字符集是固定的,系统、服务器的字符集在安装时确定,与乱码问题无关。
操作
造成乱码的是客户端,数据库,数据表,连接,返回集。而对于数据库和数据库的话可以通过sql语句去设定或者在建表或者建库的时候指定。
最关键的是客户端、连接、返回集 可以通过sql语句 set names 字符集设定。
登陆数据库的时候指定 mysql -u root -p *指定。