1、下面是一个提交页面(submit.jsp),代码如下:form name=form1 method=post action=process.jspdiv align=centerinput type=text name=namesubmitSubmit value=/div/form下面是处理页面(process.jsp)代码:%=request.getParameter()%如果submit.jsp提交英文字符能正确显示,如果提交中文时就会出现乱码。浏览器默认使用UTF-8编码方式来发送请求,而UTF- 8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过req
2、uest.seCharacterEncoding (gb2312)对请求进行统一编码,就实现了中文的正常显示。修改后的process.jsp代码如下:request.seCharacterEncoding(三、数据库连接出现乱码只要涉及中文的地方全部是乱码,解决办法:在数据库的数据库URL中加上useUnicode=true&characterEncoding=GBK 就OK了。四、数据库的显示乱码在mysql4.1.0中,varchar类型,text类型就会出现中文乱码,对于varchar类型把它设为binary属性就可以解决中文问题,对于text类型就要用一个编码转换类来处理,实现如下:p
3、ublic class Convert /* 把ISO-8859-1码转换成GB2312*/public static String ISOtoGB(String iso)String gb;tryif(iso.equals() | iso = null)return ;elseiso = iso.trim();gb = new String(iso.getBytes(ISO-8859-1),GB2312return gb;catch(Exception e)System.err.print(编码转换错误:+e.getMessage();把它编译成class,就可以调用Convert类的静态方
4、法ISOtoGB()来转换编码。如果你还有什么不懂之处:我给大家推荐一个好的JSP-JAVA网站:总结:1. 在jsp中如果指定了,那么在改jsp中所有构造的String(不是引用),如果沒有指定编码,那么这些String的编码是A的。 从request的得到的String如果沒有指定request的编码的话,他是iso-8859-1的从别的地方得到的String是使用原來初始的编码的,比如从数据库得到String,如果数据库的编码是B,那么该String的编码是B而不是A的,也不是系统默认的。 此时,如果要输出的String的编码不是A,那么,很可能显示乱码的,所以首先要将String正確转
5、化为编码A的String,然后输出。2.沒有指定,那么相当于指定了 charset=ISO-8859-13 Servelte中如果执行了像 response.setContentType(charset=A説明将response的字符输出流编码设置为A,所有要输出的String的编码要转化为A的,否則会得到乱码的。 Servelet中从request得到的String的编码和jsp中一样的,但是在servlet java文件中构造的String是使用的系统默认的编码的。在servelt中从外部得到的String 是使用原来的编码的,比如从编码为B的数据库得到的数据是编码为B的,不是A,也不是系
6、统默认的编码。/转载:JSP中文乱码问题解决方法小结在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题,以下是我在软件开发中遇到的乱码问题以及解决方法。1、JSP页面乱码 这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可,2、数据库乱码 这种乱码会使你插入数据库的中文变成乱码,或者读出显示时也是乱码,解决方法如下: 在数据库连接字符串中加入编码字符集 String Url=jdbc:mysql:/localhost/digitgulf?user=root&password=root&useUnicode=true&chara
7、cterEncoding=GB2312并在页面中使用如下代码:response.setContentType(charset=gb2312request.setCharacterEncoding(3、中文作为参数传递乱码 当我们把一段中文字符作为参数传递个另一页面时,也会出现乱码情况,解决方法如下:在参数传递时对参数编码,比如 RearshRes.jsp?keywords= + .URLEncoder.encode(keywords) 然后在接收参数页面使用如下语句接收 keywords=new String(request.getParameter(keywords).getBytes(88
8、59_1);4、JSP页面乱码加这句 language=java import=java.sql.*errorPage=err.jsp/JSP/JDBC MySQL乱码问题作者:佚名 来源:本站整理 发布时间:2005-7-1 12:24:30綠起:JSP的request 默认为ISO8859_1,所以在处理中文的时候,要显示中文的话,必须转成GBK的,如下String str=new String(request.getParameter(ISO8859-1GBKout.println(str);这样就可以显示中文了MYSQL操作时的中文问题:这个要看MySQL的默认编码了,一般不调整的话为
9、latin1其实和ISO8859_1一样,所以操作的时候要处理和他一致,不然就会乱码的1.插入中文:String sql2=INSERT INTO test (name) VALUES(+request.getParameter()+)stmt.executeUpdate(sql2);不用编码就可以插入了2.显示插入的中文:因为存入的是latin,所以显示的时候就要GBK一下String x=new String(rs.getString(title).getBytes(ISO8859_1out.println(x);3.设定存储编码:当然在MySQL为latin1编码时,也可以存的时候用GB
10、K了Connection con=DriverManager.getConnection(/localhost:3306/jsp?characterEncoding=GBK,rootstr1=中文+str1+这样也可以很成功的插入了/关于jsp乱码问题的解决。1 最基本的乱码问题。这个乱码问题是最简单的乱码问题。一般新会出现。就是页面编码不一致导致的乱码。% page language= pageEncoding=UTF-8charset=iso8859-1中文问题里面所设置的URIEncoding=”UTF-8”再进行一次编码,但是由于已经编码为utf-8,再编码也不会有变化了。如果是从ur
11、l获取编码,接受页面则是根据URIEncoding=”UTF-8”来进行解码的。4 上传文件时的乱码解决 上传文件时,form表单设置的都是enctype=。这种方式以流方式提交文件。如果使用apach的上传组件,会发现有很多乱码想象。这是因为apach的先期commons-fileupload.jar有bug,取出汉字后进行解码,因为这种方式提交,编码又自动使用的是tomcat缺省编码格式iso-8859-1。但出现的乱码问题是: 句号,逗号,等特殊符号变成了乱码,汉字如果数量为奇数,则会出现乱码,偶数则解析正常。 解决方式: 下载commons-fileupload-1.1.1.jar 这
12、个版本的jar已经解决了这些bug。但是取出内容时仍然需要对取出的字符进行从iso8859-1到utf-8转码。已经能得到正常所有汉字以及字符。5 Java代码关于url请求,接受参数的乱码url的编码格式,取决于上面所说的URIEncoding=”UTF-8”。 如果设定了这个编码格式,则意味着所有到url的汉字参数,都必须进行编码才可以。否则得到的汉字参数值都是乱码,例如一个链接 Response.sendDerect(/a.jsp?name=张大维而在a.jsp里面直接使用String name得到的就是乱码。因为规定了必须是utf-8才可以,所以,这个转向应该这样写: Response
13、.sendDerect(“/a.jsp?name=URLEncode.encode(“张大维”,”utf-8”);才可以。如果不设置这个参数URIEncoding=”UTF-8”, 会怎么样呢? 不设置则就使用了缺省的编码格式iso8859-1。问题又出来了,第一就是参数值的个数如果是奇数个数,则就可以正常解析,如果使偶数个数,得到最后字符就是乱码。还有就是如果最后一个字符如果是英文,则就能正常解析,但中文的标点符号仍出现乱码。权宜之计,如果您的参数中没有中文标点符号,则可以在参数值最后加一个英文符号来解决乱码问题,得到参数后再去掉这个最后面的符号。也可以凑或使用。6 脚本代码关于url请求,
14、接受到的参数乱码脚本中也会进行页面转向的控制,也会涉及到附带参数,并在接受页面解析这个参数的情况。如果这个汉字参数不进行URIEncoding=”UTF-8”所指定的编码处理,则接受页面接受到的汉字也是乱码。脚本处理编码比较麻烦,必须有相应的编码脚本对应文件,然后调用脚本中的方法对汉字进行编码即可。7 关于jsp在MyEclipse中打开的乱码问题对于一个已经存在的项目,Jsp文件的存储格式可能是utf-8。如果新安装的eclipse,则缺省打开使用的编码格式都是iso8859-1。所以导致jsp里面的汉字出现乱码。这个乱码比较容易解决,直接到eclipse3.1的偏好设置里面找到genera
15、l-edidor,设置为您的文件打开编码为utf-8即可。Eclipse会自动重新以新的编码格式打开。汉字即可正常显示。8 关于html页面在eclipse中打开出现乱码情况由于大部分页面都是由dreamweaver制作,其存储格式跟eclipse的识别有差别导致。一般这种情况,在eclipse中新建一个jsp,直接从dreamweaver复制页面内容粘贴到jsp即可。jsp中文乱码问题的解决办法 jsp中java中文编码问题的个人经验|终于看到一个完全解决的方案四月 5th, 2006 =开发java应用出现乱码是很常见的,毕竟现在unicode的使用还不是很广泛,在使用gb2312(包含了
16、gbk简体,big5繁体)的系统中要正确实现中文的display和数据库的存储是最基本的要求。=1,首先developer要明确自己为什么会遇到乱码,遇到什么样的乱码(无意义的符号还是一串问号或者其它什么东西)。新手遇到一堆很乱的字符时通常不知所措,最直接的反映就是打开google搜索”java中文”(这个字符串在搜索引擎上的查询频率非常高),然后一个一个的去看别人的解决方法。这样做没有错,但是很难达到目的,原因下面会提到。总之,出现乱码的原因是非常多的,解决的方法也完全不一样,要解决问题必须先分析自己的”上下文环境”。=2,具体说来,需要哪些信息才能确定项目中的乱码的根源。a,开发者所用的操
17、作系统b,j2ee容器的名称,版本c,数据库的名称,版本(精确版本)以及jdbc驱动的版本d,出现乱码的source code(比如是system out 出来的,还是jsp页面中的,如果是jsp中的,那么头部声明的情况也很重要)=3,如何初步分析乱码出现的原因。有了上述的信息,基本上就可以发帖求助了,相信放到javaworld等论坛上,很快就会有高手给你提出有效的解决方案的。当然不能总靠发帖求助,也要试试自行解决问题。如何下手呢?a,分析一下你的”乱码”到底是什么编码。这个其实不难,比如System.out.println(testString);这一段出现了乱码,那么不妨用穷举法猜测一下它
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1