已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在web开发中,中文乱码问题,我们经常碰到,尤其是超链接和jquery传输中文到后台的action或者servlet,中文就会变成乱码,影响程序的正常执行。 这里给出一个解决方法,个人觉得不错,分享一下: 1、首先创建一个java类,这里给出它的代码,作用是将中文与英文加字符串的转换: package .util;/* * JavaScript escape/unescape 编码的 Java 实现 * author jackyz * keep this copyright info while using this method by free */ public class Escape private final static String hex = 00,01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F, 10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F, 20,21,22,23,24,25,26,27,28,29,2A,2B,2C,2D,2E,2F, 30,31,32,33,34,35,36,37,38,39,3A,3B,3C,3D,3E,3F, 40,41,42,43,44,45,46,47,48,49,4A,4B,4C,4D,4E,4F, 50,51,52,53,54,55,56,57,58,59,5A,5B,5C,5D,5E,5F, 60,61,62,63,64,65,66,67,68,69,6A,6B,6C,6D,6E,6F, 70,71,72,73,74,75,76,77,78,79,7A,7B,7C,7D,7E,7F, 80,81,82,83,84,85,86,87,88,89,8A,8B,8C,8D,8E,8F, 90,91,92,93,94,95,96,97,98,99,9A,9B,9C,9D,9E,9F, A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF, B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,BA,BB,BC,BD,BE,BF, C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,CA,CB,CC,CD,CE,CF, D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF, E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,EA,EB,EC,ED,EE,EF, F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,FA,FB,FC,FD,FE,FF ; private final static byte val = 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F ; public static String escape(String s) StringBuffer sbuf = new StringBuffer(); int len = s.length(); for (int i = 0; i len; i+) int ch = s.charAt(i); if (ch = ) / space : map to + sbuf.append(+); else if (A = ch & ch = Z) / A.Z : as it was sbuf.append(char)ch); else if (a = ch & ch = z) / a.z : as it was sbuf.append(char)ch); else if (0 = ch & ch = 9) / 0.9 : as it was sbuf.append(char)ch); else if (ch = - | ch = _ / unreserved : as it was | ch = . | ch = ! | ch = | ch = * | ch = / | ch = ( | ch = ) sbuf.append(char)ch); else if (ch 8); sbuf.append(hex(0x00FF & ch); return sbuf.toString(); public static String unescape(String s) StringBuffer sbuf = new StringBuffer(); int i = 0; int len = s.length(); while (i len) int ch = s.charAt(i); if (ch = +) / + : map to sbuf.append( ); else if (A = ch & ch = Z) / A.Z : as it was sbuf.append(char)ch); else if (a = ch & ch = z) / a.z : as it was sbuf.append(char)ch); else if (0 = ch & ch = 9) / 0.9 : as it was sbuf.append(char)ch); else if (ch = - | ch = _ / unreserved : as it was | ch = . | ch = ! | ch = | ch = * | ch = / | ch = ( | ch = ) sbuf.append(char)ch); else if (ch = %) int cint = 0; if (u != s.charAt(i+1) / %XX : map to ascii(XX) cint = (cint 4) | vals.charAt(i+1); cint = (cint 4) | vals.charAt(i+2); i+=2; else / %uXXXX : map to unicode(XXXX) cint = (cint 4) | vals.charAt(i+2); cint = (cint 4) | vals.charAt(i+3); cint = (cint 4) | vals.charAt(i+4); cint = (cint 4) | vals.charAt(i+5); i+=5; sbuf.append(char)cint); i+; return sbuf.toString(); 2、在jsp中引入Escape.java文件:代码如下: 在js或jquery中声明并运用中文转换Escape类,代码如下:script type=text/javascript src=testJs/jquery-1.4.3.min.js function init() alert(start js ajax); var url=/chinese; var para1=中文测试1; var para2=测试中文2; var args=data1:escape(para1),data2:para2; $.post(url,args,function(data) if(data) alert(123); ); 3、调用init() js方法,代码如下:4、创建jquery中调用的servlet类chinese,其在web.xml中的配置如下: chinese .servlet.chinese chinese /chinese 5、完成chinese.java的servlet类,代码如下:package .servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import .util.Escape;public class chinese extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html);PrintWriter out = response.getWriter();/request.setCharacterEncoding(utf-8);/response.setCharacterEncoding(utf-8);Escape escape=new Escape();System.out.println(request.getParameter(data1);SuppressWarnings(static-access)String da1=escape.unescape(request.getParameter(data1);String da2=request.getParameter(data2);System.out.println(转换数据:+da1+t未转化:+da2);out.flush();out.close();public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException this.doGet(request, response);6、为了方便转换测试,请不要在servlet里边进行字符集配置,上边方便验证特意注释掉了字符集编码。7、启动项目测试,结果如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026河南郑州大学影视创研中心招聘3人考试备考试题及答案解析
- 2026广东东莞中学洪梅学校招聘在编教师7名考试备考题库及答案解析
- 四川中烟工业有限责任公司2026年度高层次人才招聘考试备考试题及答案解析
- 2026福建兴银理财春季社会招聘考试备考题库及答案解析
- 2026北京建筑大学第一批次聘用制岗位招聘16人考试参考题库及答案解析
- 2026河北廊坊市中级人民法院招聘劳务派遣人员2名考试参考题库及答案解析
- 2026年云南省影视协会招聘工作人员(2人)考试备考试题及答案解析
- 2026年彭泽县红光港管理服务中心招聘海关协管员考试参考试题及答案解析
- 2026年靖宇县公开招聘城市社区工作者专职岗位人员(12人)笔试参考题库及答案解析
- 2026北京海淀区妇幼保健院人才招聘考试备考试题及答案解析
- 智慧健康养老服务与管理专业教学标准(高等职业教育专科)2025修订
- 珠宝首饰售后服务与保修合同
- 2025年广东省惠州市惠城区中考一模英语试题(含答案无听力原文及音频)
- 煤矿皮带输送机跑偏原因和处理方法
- 征兵体检超声诊断
- 创伤后应激障碍的心理护理
- 云南省大理白族自治州2025届高三上学期二模考试 英语 含解析
- 医疗项目年度总结模板
- 武器装备科研生产单位保密自检报告
- 南京师范大学中北学院《无机及分析化学实验实验》2023-2024学年第一学期期末试卷
- 2024-2025学年上学期上海六年级英语期末复习卷3
评论
0/150
提交评论