在做网站系统测试时遇到的一个问题:前端JSP页面读入的汉字存入数据库后,存储在数据库中的均为乱码,在网上搜了一下都说要改为utf-8,但是我程序中使用的是gb2312,按理说一个是通用编码方式,一个是汉字编码方式,处理汉字应该都没问题。找了很多解决方法之后均无果。。后来发现原来是因为request.setCharacterEncoding("gb2312");的位置,将request.setCharacterEncoding("gb2312");放到Java处理部分的最顶端就无乱码了。。
修改前
<%
Tcmcs000 tcmcs000 = new Tcmcs000();
tcmcs000=(Tcmcs000)session.getAttribute("userBean");
if(tcmcs000!=null){
String usid="",comp="";
usid=tcmcs000.getUsid();
comp=tcmcs000.getComp();
String jjno="",pono="",opt="",xuno="";
jjno=request.getParameter("jjno");
pono=request.getParameter("pono");
xuno=request.getParameter("xuno");
opt=request.getParameter("opt");
String sql="";
request.setCharacterEncoding("gb2312");
if("doSave".equals(opt)){
......
%>
修改后
<%
request.setCharacterEncoding("gb2312");
Tcmcs000 tcmcs000 = new Tcmcs000();
tcmcs000=(Tcmcs000)session.getAttribute("userBean");
if(tcmcs000!=null){
String usid="",comp="";
usid=tcmcs000.getUsid();
comp=tcmcs000.getComp();
String jjno="",pono="",opt="",xuno="";
jjno=request.getParameter("jjno");
pono=request.getParameter("pono");
xuno=request.getParameter("xuno");
opt=request.getParameter("opt");
String sql="";
if("doSave".equals(opt)){
......
%>