对于一般使用的jsp页面,在页面首部加上代码<%@ page contentType="text/html;charset=gb2312"%>,一般可以解决中文乱码问题。
有时在提交表单数据时,会发现另一个页面不能接受到正确的中文数据,这时可以在页面首部加上代码<%request.setCharacterEncoding("gb2312")%>,一般能解决问题。此外这段代码还可以解决将表单提交到数据库,库中的乱码问题,相反,如果库中的数据显示正常,但是到页面时就成为乱码,用此代码也可以解决的。
基本上可以用上述代码解决jsp页面的大部分中文乱码问题,但是如果不行的话就要用别的方法解决了。例如mysql就带在它的配置文件中作适当的修改,然而不是所有的数据库都支持中文,当然我们也是有办法的。
如果提交的表单有中文数据,我们可以把提交的数据全部变成iso-8859-1编码,然后再提交到数据库中。例如。
<%
String name=new String(request.getParameter("name").getBytes("gb2312"),"iso-8859-1");
%>
在把name提交到数据库就可以了。
相反,要在jap页面正确显示的话可以用以下代码
<%
String name=new String(rs.getString("name").getBytes("iso-8859-1"),"gb2312");
out.println(name);
%>
以上就是我在开发web时遇到的中文乱码问题与解决方案,希望可以给初学者一点帮助。
有时在提交表单数据时,会发现另一个页面不能接受到正确的中文数据,这时可以在页面首部加上代码<%request.setCharacterEncoding("gb2312")%>,一般能解决问题。此外这段代码还可以解决将表单提交到数据库,库中的乱码问题,相反,如果库中的数据显示正常,但是到页面时就成为乱码,用此代码也可以解决的。
基本上可以用上述代码解决jsp页面的大部分中文乱码问题,但是如果不行的话就要用别的方法解决了。例如mysql就带在它的配置文件中作适当的修改,然而不是所有的数据库都支持中文,当然我们也是有办法的。
如果提交的表单有中文数据,我们可以把提交的数据全部变成iso-8859-1编码,然后再提交到数据库中。例如。
<%
String name=new String(request.getParameter("name").getBytes("gb2312"),"iso-8859-1");
%>
在把name提交到数据库就可以了。
相反,要在jap页面正确显示的话可以用以下代码
<%
String name=new String(rs.getString("name").getBytes("iso-8859-1"),"gb2312");
out.println(name);
%>
以上就是我在开发web时遇到的中文乱码问题与解决方案,希望可以给初学者一点帮助。