javaweb中的乱码问

来源:互联网 发布:java企业级项目案例 编辑:程序博客网 时间:2024/06/06 03:52


作为一个新手,对于这个乱码问题真实头大,不过经过无数的查找,终于解决了javaweb中的乱码问题


1. 首先在jsp和servlet中,通过

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=utf-8");
将页面与后台的编码方式都设置为utf8,这个只是统一数据传输中的编码方式
2.然后在tomcat的安装目录下的conf文件的server.xml将 
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>修改为
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>
这个是为了也将tomcat的编码方式也改为utf8
3.接着便是修改mysql了首先关闭mysql服务(可以在cmd中通过net stop mysql关闭
或者打开电脑的管理,在服务中手动关闭mysql),然后在mysql的安装目录下的sqlyog
目录中找到my.ini,将default-character-set和character-set-server的字符集改为utf8
接着在cmd中用mysqld -initialize重新初始化mysql(一定要重新初始化mysql,否则无
法重新开启mysql服务),然后打开mysql服务。最后用show variables like "%colla%";
和查看一下字符集show variables like "character_set_%";  如果显示结果是下面这样,
则说明配置完成。
注意:
1. 如果以前建有数据库没有删除的且字符集不是utf8的,在命令行下面可以用

alter database 数据库名 character set “字符集”;命令来修改数据库字符集

或者在mysql操作软件上直接修改。

2. 一般来说,创建数据库和数据表时,系统会采取默认字符集,但可以在创建的时候

自己可以手动添加,

CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
但我上面修改mysql的方法就是修改mysql的默认字符集,如果想修改成其他的字符集,可以
在创建的时候手动添加或者修改默认字符集。
utf8,个人认为是万能字符集,建议将默认字符集改为utf8,这样会省去很多麻烦。

至此javaweb中的乱码问题就得到解决了,希望能把自己遇到的问题和大家一起分享,
如有问题,敬请纠正。

原创粉丝点击