1. 静态页面的乱码问题
文件的编码和浏览器要显示的编码不一致:
<meta http-equiv="content-type" content="text/html; charset=GBK">
其中charset可以设置成自己需要的编码格式,如:UTF-8。
2. JSP 页面的乱码问题
设置page 指令pageEncoding:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
如: pageEncoding="GBK"
可以设置成自己需要的编码格式,如:UTF-8。。
3. 表单提交的乱码问题(Tomcat 特有)
1).Servlet中 POST 的乱码处理
处理方式就是在获取参数之前设置编码:
request.setCharacterEncoding("GBK");
可以设置成自己需要的编码格式,如:UTF-8。
2) Servlet中 GET 方式的乱码处理
用 setCharacterEncoding() 不能解决. Tomcat 的一个BUG, GET 方式传送的表单参
数总是用的 ISO8859-1 编码. 我们要把它转成 GBK 或UTF-8方式.
String username = request.getParameter("username");
System.out.println(username);//这里输出的是乱码
// 转码, 先取得原始的二进制字节数组
byte[] data = username.getBytes("ISO-8859-1");
// 根据新的字符集再构造新的字符串,当然也可构建成UTF-8编码
username = new String(data, "GBK");
4.Servlet向jsp传值,如果出现乱码就要进行相应的编码处理
Servlet中:
String m = "青年团ccccc";
String newm =new String(m.getBytes("GBK"),"ISO-8859-1");
response.sendRedirect("/z/index1.jsp?x="+newm);
jsp中:
String ss=request.getParameter("x");
String aa = new String(ss.getBytes("ISO-8859-1"),"GBK");