12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
mysql数据库 时间:2024-11-28 13:27:08
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
项目进行到和服务器交互,通过post访问服务器端jsp,jsp访问服务器端mysql数据库,最终返回到客户端的中文出现乱码问题。在整个流程中,出现错误的原因可能是三个:post未设置编码或
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
项目进行到和服务器交互,通过post访问服务器端jsp,jsp访问服务器端mysql数据库,最终返回到客户端的中文出现乱码问题。
在整个流程中,出现错误的原因可能是三个:post未设置编码或者编码不相符合,jdbc出现问题,linux下mysql初始码制问题。
在经过繁琐的排查后,最终确定问题为mysql编码问题。下文介绍如何解决linux下mysql中文乱码问题。
首先进入mysql命令行模式,键入mysql -uroot -p 即可进入。随后键入SHOW VARIABLES LIKE 'character_set_%';
若显示内容类似这样:
+--------------------------+----------------------------------------------+|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|/alidata/server/mysql-5.1.73/share/charsets/|
则已修改正确,而mysql默认初始设置的都是latin1而非utf8。
一种解决方法是更改表格的属性设置为utf8或者在创建表格的时候在最后加上DEFAULT CHARSET=utf8
。设置表格为utf8码。这样的方法有可能失效。
最根本的解决方法是打开mysql配置文件修改。linux下mysql配置文件名为my.cnf,目录为/etc/my.cnf,打开后按照以下操作:
--在[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
上述标签若未能全部找到也没关系。再次打开mysql命令行,执行SHOW VARIABLES LIKE 'character_set_%';
后若仍存在latin1,则在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;
set collation_server = utf8_general_ci;
执行后再执行上述show 命令可得到目标结果。
设置完成后需要重新启动mysql,重启命令/etc/init.d/mysqld restart 。
原数据表需要删除后重建。
最终完成,大功告成。
小结
1、修改/etc/my.cnf文件,增加以下几行:
[client]#pipe=#socket=MYSQLport=3306default-character-set=utf8[mysql]no-beep#default-character-set=default-character-set=utf8#SERVERSECTION#----------------------------------------------------------------------#ThefollowingoptionswillbereadbytheMySQLServer.Makesurethat#youhaveinstalledtheservercorrectly(seeabove)soitreadsthis#file.#server_type=3[mysqld]character_set_server=utf8
2、重启mysql服务:
servicemysqlstop;servicemysqlstatus;servicemysqlstart;或者servicemysqlrestart;
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19