|
前几天给朋友作一个留言本,所需的一切架构及JAVA BEAN 都写好了。但向数据库写数据及读数据时出现了乱码问题。在网上查了很多资料也没有得到确的答案,本人在做了几天实验,其中因为机子配置太低还加了根内存条,才得到准确的答案,本此献给那些被JSP乱码所困惑的朋友。
本机配置的java环境:jdk1.6.0 ,tomcat6.0
在MyEclipse6.0环境调试下通过。
1.JSP页面间的参数传递(包括POST,GET)
系统默认在传递参数是为 ISO-8859-1,所以我们在得到参数的页面上加上如下语句:
<%@ page language="java" contentType="text/html; charset=gb2312"%> //让页面以"gb2312"中文显示内容。
new String(request.getParameter("要得到的参数").getBytes("ISO-8859-1")) //以ISO-8859-1形式获取参数字节(系统默认在传递参数是为 ISO-8859-1),然后构成新的字符串,些时获得的为"gb2312"的字符串,显示时不出现乱码。
2.JSP页面向SERVLET之间的参数传递。
JSP页面向SERVLET参数传递是时,传递的时候,参数没有编码,所以只需直接获取参数即可。
3.数据库读写问题。
数据库的读写一般是ISO-8859-1;写入时数据库会自动转换,读取是应用下面语句:
rs.getString("要读取的字段").getBytes("ISO-8859-1")
这是本人测试通过的,如有请留言。
补充:
1、如果不知道传递的参数以何种形式编码,请用
URLDecoder.decode(要解码的字符串)
要引入包:import java.net.URLDecoder;
2、获取当前字符串编码
request.getCharacterEnco**(要获取的字符串);
|
|