jsp乱码解决专项方案大全文库.doc
《jsp乱码解决专项方案大全文库.doc》由会员分享,可在线阅读,更多相关《jsp乱码解决专项方案大全文库.doc(41页珍藏版)》请在咨信网上搜索。
1、jsp乱码处理方案大全文库.txt生活是过出来,不是想出来。放得下是曾经,放不下是记忆。不管我在哪里,我离你全部只有一转身距离。一、JSP页面显示乱码下面显示页面(display.jsp)就出现乱码:JSP汉字处理对不一样WEB服务器和不一样JDK版本,处理结果就不一样。原因:服务器使用编码方法不一样和浏览器对不一样字符显示结果不一样而造成。处理措施:在JSP页面中指定编码方法(gb2312),即在页面第一行加上:,就能够消除乱码了。完整页面以下:JSP汉字处理二、表单提交汉字时出现乱码下面是一个提交页面(submit.jsp),代码以下:JSP汉字处理下面是处理页面(process.jsp)
2、代码:JSP汉字处理假如submit.jsp提交英文字符能正确显示,假如提交汉字时就会出现乱码。原因:浏览器默认使用UTF-8编码方法来发送请求,而UTF- 8和GB2312编码方法表示字符时不一样,这么就出现了不能识别字符。处理措施:经过request.seCharacterEncoding (gb2312)对请求进行统一编码,就实现了汉字正常显示。修改后process.jsp代码以下:JSP汉字处理三、数据库连接出现乱码只要包含汉字地方全部是乱码,处理措施:在数据库数据库URL中加上useUnicode=true&characterEncoding=GBK 就OK了。四、数据库显示乱码在m
3、ysql4.1.0中,varchar类型,text类型就会出现汉字乱码,对于varchar类型把它设为binary属性就能够处理汉字问题,对于text类型就要用一个编码转换类来处理,实现以下:public 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),GB231
4、2);return gb;catch(Exception e)System.err.print(编码转换错误:+e.getMessage();return ;把它编译成class,就能够调用Convert类静态方法ISOtoGB()来转换编码。假如你还有什么不懂之处:我给大家推荐一个好JSP-JAVA网站:总结:1. 在jsp中假如指定了,那么在改jsp中全部结构String(不是引用),假如沒有指定编码,那么这些String编码是A。 从request得到String假如沒有指定request编码话,她是iso-8859-1 从别地方得到String是使用原來初始编码,比如从数据库得到Str
5、ing,假如数据库编码是B,那么该String编码是B而不是A,也不是系统默认。 此时,假如要输出String编码不是A,那么,很可能显示乱码,所以首先要将String正確转化为编码AString,然后输出。2. 在jsp中沒有指定,那么相当于指定了3 Servelte中假如实施了像 response.setContentType(text/html;charset=A);説明将response字符输出流编码设置为A,全部要输出String编码要转化为A,否則会得到乱码。 Servelet中从request得到String编码和jsp中一样,不过在servlet java文件中结构String
6、是使用系统默认编码。在servelt中从外部得到String 是使用原来编码,比如从编码为B数据库得到数据是编码为B,不是A,也不是系统默认编码。 /转载:JSP汉字乱码问题处理方法小结在使用JSP过程中,最使人头疼一个问题就是汉字乱码问题,以下是我在软件开发中碰到乱码问题和处理方法。 1、JSP页面乱码 这种乱码原因是应为没有在页面里指定使用字符集编码,处理方法:只要在页面开始地方用下面代码指定字符集编码即可, 2、数据库乱码 这种乱码会使你插入数据库汉字变成乱码,或读出显示时也是乱码,处理方法以下: 在数据库连接字符串中加入编码字符集 String Url=jdbc:mysql:/loca
7、lhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=GB2312; 并在页面中使用以下代码: response.setContentType(text/html;charset=gb2312); request.setCharacterEncoding(gb2312); 3、汉字作为参数传输乱码 当我们把一段汉字字符作为参数传输个另一页面时,也会出现乱码情况,处理方法以下: 在参数传输时对参数编码,比如 RearshRes.jsp?keywords= + .URLEncoder.encode(key
8、words) 然后在接收参数页面使用以下语句接收 keywords=new String(request.getParameter(keywords).getBytes(8859_1); 4、JSP页面乱码加这句 /JSP/JDBC MySQL乱码问题作者:佚名 起源:本站整理 公布时间:-7-1 12:24:30綠起:JSPrequest 默认为ISO8859_1,所以在处理汉字时候,要显示汉字话,必需转成GBK,以下String str=new String(request.getParameter(name).getBytes(ISO8859-1),GBK); out.println(s
9、tr); 这么就能够显示汉字了MYSQL操作时汉字问题:这个要看MySQL默认编码了,通常不调整话为latin1其实和ISO8859_1一样,所以操作时候要处理和她一致,不然就会乱码1.插入汉字:String sql2=INSERT INTO test (name) VALUES(+request.getParameter(name)+); stmt.executeUpdate(sql2);不用编码就能够插入了2.显示插入汉字:因为存入是latin,所以显示时候就要GBK一下String x=new String(rs.getString(title).getBytes(ISO8859_1),
10、GBK);out.println(x);3.设定存放编码:当然在MySQL为latin1编码时,也能够存时候用GBK了Connection con=DriverManager.getConnection(jdbc:mysql:/localhost:3306/jsp?useUnicode=true&characterEncoding=GBK,root,); str1=汉字; String sql2=INSERT INTO test (name) VALUES(+str1+);这么也能够很成功插入了,呵呵/JSP/Servlet 中汉字编码问题(作者:张建芳,转自IBM DeveloperWork
11、s 中国网站04月18日 15:08)网上就 JSP/Servlet 中 DBCS 字符编码问题有很多优异文章和讨论,本文对它们作部分整理,并结合 IBM WebSphere Application Server 3.5(WAS)处理方法作部分说明,期望它不是多出。 1.问题起源 每个国家(或区域)全部要求了计算机信息交换用字符编码集,如美国 ASCII,中国 GB2312-80,日本 JIS 等,作为该国家/区域内信息处理基础,有着统一编码关键作用。字符编码集按长度分为 SBCS(单字节字符集),DBCS(双字节字符集)两大类。早期软件(尤其是操作系统),为了处理当地字符信息计算机处理,出现
12、了多种当地化版本(L10N),为了区分,引进了 LANG,Codepage 等概念。不过因为各个当地字符集代码范围重合,相互间信息交换困难;软件各个当地化版本独立维护成本较高。所以有必需将当地化工作中共性抽取出来,作一致处理,将尤其当地化处理内容降低到最少。这也就是所谓国际化(I18N)。多种语言信息被深入规范为 Locale 信息。处理底层字符集变成了几乎包含了全部字形 Unicode。 现在大部分含有国际化特征软件关键字符处理全部是以 Unicode 为基础,在软件运行时依据当时 Locale/Lang/Codepage 设置确定对应当地字符编码设置,并依此处理当地字符。在处理过程中需要实
13、现 Unicode 和当地字符集相互转换,甚或以 Unicode 为中间两个不一样当地字符集相互转换。这种方法在网络环境下被深入延伸,任何网络两端字符信息也需要依据字符集设置转换成可接收内容。 Java 语言内部是用 Unicode 表示字符,遵守 Unicode V2.0。Java 程序不管是从/往文件系统以字符流读/写文件,还是往 URL 连接写 HTML 信息,或从 URL 连接读取参数值,全部会有字符编码转换。这么做即使增加了编程复杂度,轻易引发混淆,但却是符合国际化思想。 从理论上来说,这些依据字符集设置而进行字符转换不应该产生太多问题。而事实是因为应用程序实际运行环境不一样,Uni
14、code 和各个当地字符集补充、完善,和系统或应用程序实现不规范,转码时出现问题时时困扰着程序员和用户。 2.GB2312-80,GBK,GB18030- 汉字字符集 其实处理 JAVA 程序中汉字编码问题方法往往很简单,但了解其背后原因,定位问题,还需要了解现有汉字编码和编码转换。 GB2312-80 是在中国计算机汉字信息技术发展初始阶段制订,其中包含了大部分常见一、二级汉字,和 9 区符号。该字符集是几乎全部汉字系统和国际化软件全部支持汉字字符集,这也是最基础汉字字符集。其编码范围是高位0xa10xfe,低位也是 0xa1-0xfe;汉字从 0xb0a1 开始,结束于 0xf7fe; G
15、BK 是 GB2312-80 扩展,是向上兼容。它包含了 20902 个汉字,其编码范围是 0x8140-0xfefe,剔除高位 0x80 字位。其全部字符全部能够一对一映射到 Unicode 2.0,也就是说 JAVA 实际上提供了 GBK 字符集支持。这是现阶段 Windows 和其它部分汉字操作系统缺省字符集,但并不是全部国际化软件全部支持该字符集,感觉是她们并不完全知道 GBK 是怎么回事。值得注意是它不是国家标准,而只是规范。伴随 GB18030-国家标准公布,它将在很快未来完成它历史使命。 GB18030-(GBK2K) 在 GBK 基础上深入扩展了汉字,增加了藏、蒙等少数民族字形
16、。GBK2K 从根本上处理了字位不够,字形不足问题。它有多个特点: 它并没有确定全部字形,只是要求了编码范围,留待以后扩充。 编码是变长,其二字节部分和 GBK 兼容;四字节部分是扩充字形、字位,其编码范围是首字节 0x81-0xfe、二字节0x30-0x39、三字节 0x81-0xfe、四字节0x30-0x39。 它推广是分阶段,首先要求实现是能够完全映射到 Unicode 3.0 标准全部字形。 它是国家标准,是强制性。 现在还没有任何一个操作系统或软件实现了 GBK2K 支持,这是现阶段和未来汉化工作内容。 3.JSP/Servlet 汉字编码问题及在 WAS 中处理措施 3.1 常见
17、encoding 问题现象 网上常出现 JSP/Servlet encoding 问题通常全部表现在 browser 或应用程序端,如: 浏览器中看到 Jsp/Servlet 页面中汉字怎么全部成了 ? ? 浏览器中看到 Servlet 页面中汉字怎么全部成了乱码? JAVA 应用程序界面中汉字怎么全部成了方块? Jsp/Servlet 页面无法显示 GBK 汉字。 Jsp/Servlet 不能接收 form 提交汉字。 JSP/Servlet 数据库读写无法取得正确内容。 隐藏在这些问题后面是多种错误字符转换和处理(除第3个外,是因为 Java font 设置错误引起)。处理类似字符 enc
18、oding 问题,需要了解 Jsp/Servlet 运行过程,检验可能出现问题各个点。 3.2 JSP/Servlet web 编程时 encoding 问题 运行于Java 应用服务器 JSP/Servlet 为 Browser 提供 HTML 内容,其过程以下图所表示: 其中有字符编码转换地方有: a.JSP 编译。Java 应用服务器将依据 JVM file.encoding 值读取 JSP 源文件,并转换为内部字符编码进行 JSP 编译,生成 JAVA 源文件,依据 file.encoding 值写回文件系统。假如目前系统语言支持 GBK,那么这时候不会出现 encoding 问题。假
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp 乱码 解决 专项 方案 大全 文库
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。