
页面也需要设置转码的:
页面:(jsp)
<%@ page language="java" import="javautil" pageEncoding="UTF-8"%>
responsesetContentType("text/html;charset=UTF-8");
处理文件:(java)
转码的三种方法:
A 接受参数时进行编码转换
String str = new String(requestgetParameter("something")getBytes("ISO-8859-1"),"utf-8"); 这样的话,每一个参数都必须这样进行转码。很麻烦。但确实可以拿到汉字。
B 在请求页面上开始处,执行请求的编码代码, requestsetCharacterEncoding("UTF-8"),把提交内容的字符集设为UTF-8。这样的话,接受此参数的页面就不必在转码了。直接使用
String str = requestgetParameter("something");即可得到汉字参数。但每页都需要执行这句话。
这个方法也就对post提交的有效果,对于get提交和上传文件时的enctype="multipart/form-data"是无效的。稍后下面单独对这个两个的乱码情况再进行说明。
C 为了避免每页都要写requestsetCharacterEncoding("UTF-8"),建议使用过滤器对所有jsp进行编码处理。
新手可以暂时不考虑过滤器的方法,过滤器一般都会涉及到配置开发,要修改webxml,还算是比较麻烦的,建议接触java一段时间后再考虑使用过滤器的方法。或者如果应用了struts框架,可以查看struts的转码过滤器配置。
注意三统一就不产生乱码。
对于你的情况,表单、网页文件要是GB2312编码,UTF8就会乱码;数据库连接成功以后set name gb2312,没有这句就可能是乱码,这些都要和数据库表建立时的GB2312一致,你要检查数据库表结构,看究竟是否GB2312。
补充:
要看具体的表结构,另外你是否漏了set names gb2312语句?
因为使用的编码没有统一!
比如数据库使用的UTF-8编码,而你的JSP端使用GBK编码!写入数据库的中文就会出现乱码了!
解决办法就是把编码统一就可以了,一般是在JSP页面做处理,假如你的数据库编码是UTF-8,则JSP页面加入下列代码
<%@page pageEncoding="UTF-8"%>
在你的jsp页面里的第一行是这么写的吗
<%@ page language="java" pageEncoding="GBK" contentType="text/html;charset=GBK"%>
如果不是就试一下~~~
如果还不好使的话就在ActionForm类里的
public void reset(ActionMapping mapping, >
首先把你获取的页面的数据用DB的编码方式重新编码一下再存入DB
如String tstna=requestgetParameter("shijuanming");
改成String tstna=requestgetParameter("shijuanming");
tstna = new String(tstnagetBytes("ISO-8859-1", "GB2312"));
后面的一个编码方式,如果DB是GB2312,那就是这个,如果不是,改成DB相应的编码方式就行了
当然,把mysql 和 jsp上编码格式设置一致即可, 一般默认mysql的编码格式是UTF-8, 建议在jsp中也设置为UTF-8, 如果你不想这么做的话要改数据库格式, 也就是说你所有建立的表都要重新建立成GBK编码。
以上就是关于jsp中文乱码全部的内容,包括:jsp中文乱码、jsp mysql 中文乱码、通过Jsp往Oracle数据库中提交数据为什么汉字会出现乱码的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)