数据库乱码
浏览器出现的乱码
出现乱码问题,一定是编码和解码用的码表不一致造成的。从用户界面到数据库显示的cmd界面需要编码和解码的地方有:
浏览器使用的编码,socket发送使用的编码,tomcat连接器解析时使用的编码,mysql存储引擎所使用的编码,jsp,
windows cmd界面所使用的编码。
常出现的中文默认编码: 浏览器默认gb2312, JSP
默认ISO-8859-1,socket 传输和数据库 utf-8,
cmd默认GBK编码,InnoDB默认使用latin1_swedish_ci
解决办法只能一一的核对编码方式,统一的使用一种编码方式,推荐使用utf-8,变长编码方式,有GBK和utf-16的优势,方便网络传输。
感觉最麻烦的是 mysql的编码:
修改编码可以从配置文件my.ini(window)或f(linux)和命令行修改:
my.ini:
--在 [mysqld]
标签下加上三行default-character-set = utf8character_set_server =
utf8lower_case_table_names = 1 //表名不区分大小写(此与编码无关)
--在 [mysql] 标签下加上一行default-character-set = utf8
--在 [mysql.server]标签下加上一行default-character-set = utf8
--在 [mysqld_safe]标签下加上一行default-character-set = utf8
--在 [client]标签下加上一行default-character-set = utf8
命令:
| character_set_client | utf8 || character_set_connection | utf8
|| character_set_database | utf8 || character_set_results | utf8 ||
character_set_server | utf8 || character_set_system | utf8 ||
character_sets_dir | /usr/share/mysql/charsets/ |
如果仍有编码不是utf8的,请检查配置文件,也可使用mysql命令设置:set character_set_client =
utf8;set character_set_server = utf8;set character_set_connection =
utf8;set character_set_database = utf8;set character_set_results =
utf8;set collation_connection = utf8_general_ci;set
collation_database = utf8_general_ci;