创新互联建站专注于土默特左旗网站建设服务及定制,我们拥有丰富的企业做网站经验。热诚为您提供土默特左旗营销型网站建设,土默特左旗网站制作、土默特左旗网页设计、土默特左旗网站官网定制、成都微信小程序服务,打造土默特左旗网络公司原创品牌,更为您提供土默特左旗网站排名全网营销落地服务。
成都创新互联专注于企业成都全网营销、网站重做改版、海口网站定制设计、自适应品牌网站建设、H5场景定制、商城网站定制开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为海口等各大城市提供网站开发制作服务。
所有页面要统一编码utf-8中 一个中文字占用3个字节而在gbk中是2个字节
程序遇到问题应该一步步找到问题的所在的,首先,用表单方式提交需要将method设为post方式,get方式是不能传递中文的。其次,接收数据的时候需要设置request, request.setcharacterencoding("gbk");获得传递的参数,string name = request.getparameter("name");在这里可以看下是否中文能够正确传递,如果可以的话就再看最后插入到mysql中的insert语句。
有时候还会有ISO的问题,上网找找这几种解决方案。放心不是系统错误,是编译的时候你自己出的错
要用gbk就行了
lz,你可以加上这么一句:request.setCharacterEncoding("gbk");这样就可以避免乱码了
request.setCharacterEncoding("gbk"); 或者request.setCharacterEncoding("utf-8"); 我大部分都加gbk, 就不会乱码了!
首先:页面的后面pageEncoding改成GBK<%@ page language="java" import="java.util.*" pageEncoding="gbk"%> 第一种解决方案:转字符格式,把ISO-8859-1转换成GBKString s1 = request.getParameter(“keyword”); String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);第二种:指定页面格式为GBKresponse.setCharacterEncoding("GBK");第三种:写个中文过滤器过程比较多,这里就不做详细解答了
涉及到编码问题很多地方都建议都设置成UTF-8页面也需要设置转码的:页面:(.jsp)<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>response.setContentType("text/html;charset=UTF-8");处理文件:(.java)转码的三种方法:A 接受参数时进行编码转换String str = new String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8"); 这样的话,每一个参数都必须这样进行转码。很麻烦。但确实可以拿到汉字。B 在请求页面上开始处,执行请求的编码代码, request.setCharacterEncoding("UTF-8"),把提交内容的字符集设为UTF-8。这样的话,接受此参数的页面就不必在转码了。直接使用String str = request.getParameter("something");即可得到汉字参数。但每页都需要执行这句话。这个方法也就对post提交的有效果,对于get提交和上传文件时的enctype="multipart/form-data"是无效的。稍后下面单独对这个两个的乱码情况再进行说明。C 为了避免每页都要写request.setCharacterEncoding("UTF-8"),建议使用过滤器对所有jsp进行编码处理。新手可以暂时不考虑过滤器的方法,过滤器一般都会涉及到配置开发,要修改web.xml,还算是比较麻烦的,建议接触java一段时间后再考虑使用过滤器的方法。或者如果应用了struts框架,可以查看struts的转码过滤器配置。希望能帮到你哦!
转下编码格式 utf-8
开发java应用出现乱码是很常见的,毕竟现在unicode的使用还不是很广泛,在使用gb2312(包含了gbk简体,big5繁体)的系统中要正确实现
中文的display和数据库的存储是最基本的要求。
==============================
1,首先developer要明确自己为什么会遇到乱码,遇到什么样的乱码(无意义的符号还是一串问号或者其它什么东西)。
新手遇到一堆很乱的字符时通常不知所措,最直接的反映就是打开google搜索”java中文”(这个字符串在搜索引擎上的查询频率非常高),
然后一个一个的去看别人的解决方法。这样做没有错,但是很难达到目的,原因下面会提到。
总之,出现乱码的原因是非常多的,解决的方法也完全不一样,要解决问题必须先分析自己的”上下文环境”。
============================
2,具体说来,需要哪些信息才能确定项目中的乱码的根源。
a,开发者所用的操作系统
b,j2ee容器的名称,版本
c,数据库的名称,版本(精确版本)以及jdbc驱动的版本
d,出现乱码的source code(比如是system out 出来的,还是jsp页面中的,如果是jsp中的,那么头部声明的情况也很重要)
===========================================================
3,如何初步分析乱码出现的原因。
有了上述的信息,基本上就可以发帖求助了,相信放到javaworld等论坛上,很快就会有高手给你提出有效的解决方案的。
当然不能总靠发帖求助,也要试试自行解决问题。如何下手呢?
a,分析一下你的”乱码”到底是什么编码。这个其实不难,比如
System.out.PRintln(testString);
这一段出现了乱码,那么不妨用穷举法猜测一下它的实际编码格式。
System.out.println(new String(testString.getBytes(”ISO-8859-1″),”gb2312″));
System.out.println(new String(testString.getBytes(”UTF8″),”gb2312″));
System.out.println(new String(testString.getBytes(”GB2312″),”gb2312″));
System.out.println(new String(testString.getBytes(”GBK”),”gb2312″));
System.out.println(new String(testString.getBytes(”BIG5″),”gb2312″));
等等,上述代码的意思是用制定的编码格式去读取testString这个”乱码”,并转换成gb2312(此处仅以中文为例)
然后你看哪一个转换出来的结果是ok的,那就。。。
b,如果用上面的步骤能得到正确的中文,说明你的数据肯定是在的,只不过是界面中没有正确显示而已。那么第二步就该纠正你的view部分了
,通常需要检查的是jsp中是否选择了正确的页面编码。
在此要声明被很多人误解的一点,那就是<%@ page contentType=”text/html; charset=GB2312″ %>指令和两者的不同。通常网上的很多文章在提到中文问题时都是说数据库中选择unicode或者gb2312存储,同
时在jsp中用page指令声明编码就可以解决。但是我觉得这种说法很不负责任,害的我费了N多时间为本来并不存在的乱码而郁闷。实际上page
的作用是在jsp被编译成为html的过程中提供编码方式让java来”读取”表达式当中的String(有点类似于上面的第三个语句的作用),而meta
的作用是众所周知的为IE浏览器提供编码选择,是用来”显示”最后的数据的。但是没有看到有人提醒这一点,我一直把page当成meta在用,
导致本来是iso-8859的数据,被page指令读成gb2312,于是乱码,所以又加了编码转化的函数把所有的string数据都从iso8859转到gb2312(为
什么这么转,当时也没考虑这么多,因为这么做可以正常显示了,所以就这么改了,呵呵当时实在没有时间慢慢排查问题了)。
JSP 中文乱码处理解决方案初学JSP,尤其是Tomcat环境(GlassFish默认UTF-8,则不存在此类问题),经常会因为中文汉字字符集设置问题导致中文乱码,本文就这一问题提出解决方案,解决中文乱码问题,供各位参考,我采用的方案是统一字符集至UTF-8,同时避免GB2312所带来的中文字符集不够用的隐患,需注意的地方有三点,默认情况下是英文字符集。
1、Tomcat 的 server.xml 文件,设置服务器端口工作方式2、Servlet 和 JavaBean 对字符串字符集处理的统一3、JSP页面的字符集统一完成这三点统一,中文想乱码都难,如果使用MySQL的话,数据表也需要做UTF-8统一。修改Tomcat的server.xml文件,该文件位于 tomcat/conf,红色部分为添加部分,也就是当前使用的HTTP端口的连接方式的设置。找到Connector 标签,使 Tomcat 服务器以UTF-8模式进行工作,从底层对乱码进行处理,修改如下: