向客户端输出中文
response.setContentType("text/html;charset=utf-8");
为什么表单提交的中文会出现乱码?
当表单提交时,浏览器会对中文参数值进行编码(会使用表单所在页面的字符集进行编码),而Web服务器在默认情况下会使用iso-8859-1去解码,编码和解码方式不一致时就会出现乱码.
解决POST方式时的乱码情况.
1.确保表单所在的页面按照指定的字符集打开(以utf-8为例)
<meta charset="UTF-8">
2.在服务器端添加(在读取参数的前面)解码格式:
request.setCharacterEncoding("utf-8");
解决GET方式时的乱码情况.
1.确保表单所在的页面按照指定的字符集打开(以utf-8为例)
<meta charset="UTF-8">
2.在服务器端使用如下方式获取参数值(以name为例子)
String name=request.getParameter("name");
name=new String(name.getBytes(“iso-8859-1”),”utf-8”);
中文插入数据库乱码
在MySQL的安装目录下找到my.ini
打开my.ini以后,在[client]和[mysql]下面均加上default-character-set=utf8,在[mysqld]下把character-set-server的值设置为utf8,然后重启服务.