Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7249222
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68080
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:50:36

下载本文示例代码
  为什么说乱码是中国程序员无法避免的话题呢?这个首先要从编码机制上说起,大家都是中文和英文的编码格式不是一样,解码也是不一样的!如果中国的程序员不会遇到乱码,那么只有使用汉语编程。汉语编程是怎么回事我也不大清楚,应该是前年吧,我一朋友给我介绍汉语编程,怎么不错不错?当时因为学习忙没去关注这个,等我闲了,那个朋友不弄这个,问他他也不说不大清楚,最后自己对这个学习也不了了之了。   今天我写这个不是讲解中英文之间的差距,解码等,我是将我在这几年工作遇到各种各样的乱码的解决方法,总结一样,也希望大家能把自己晕倒解决乱码的方法都说出来,咱们弄一个解决乱码的“葵花宝典”。   对于Java由于默认的编码方式是 UNICODE,所以用中文也易出问题,常见的解决是   String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);   1、utf8解决JSP中文乱码问题   一般说来在每个页面的开始处,加入: 以下是引用片段:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("UTF-8"); %>   request.setCharacterEncoding("UTF-8");   %>   charset=UTF-8 的作用是指定JSP向客户端输出的编码方式为“UTF-8”   pageEncoding="UTF-8" 为了让JSP引擎能正确地解码含有中文字符的JSP页面,这在LINUX中很有效   request.setCharacterEncoding("UTF-8"); 是对请求进行了中文编码   有时,这样仍不能解决问题,还需要这样处理一下:   String msg = request.getParameter("message");   String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");   out.println(st);   2、Tomcat 5.5 中文乱码   1)只要把%TOMCAT安装目录%/ webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到你的webapp目录/filters下,如果没有filters目录,就创建一个。   2)在你的web.xml里加入如下几行: 以下是引用片段: Set Character Encoding filters.SetCharacterEncodingFilter encoding GBK Set Character Encoding /*   3)完成.   2 get方式的解决办法   1) 打开tomcat的server.xml文件,找到区块,加入如下一行:   URIEncoding=”GBK”   完整的应如下:    以下是引用片段:   2)重启tomcat,一切OK。   3、xmlHttpRequest中文问题   页面jsp用的GBK编码   以下是引用片段: 代码 <%@ page contentType="text/html; charset=GBK"%>    javascript部分   代码    function addFracasReport() { var url="controler?actionId=0_06_03_01&actionFlag=0010"; var urlmsg="&reportId=" fracasReport1.textReportId.value; //故障报告表编号 var xmlHttp=Common.createXMLHttpRequest(); xmlHttp.onreadystatechange = Common.getReadyStateHandler(xmlHttp, eval("turnAnalyPage")); xmlHttp.open("POST",url,true); xmlHttp.setRequestHeader( " Content-Type " , " application/x-www-form-urlencoded); xmlHttp.send(urlmsg); }   后台java中获得的reportId是乱码,不知道该怎么转,主要是不知道xmlHttp.send(urlmsg);以后是什么编码?在后面用java来转,试了几种,都没有成功,其中有:    以下是引用片段:代码   public static String UTF_8ToGBK(String str) {   try {   return new String(str.getBytes("UTF-8"), "GBK");   } catch (Exception ex) {   return null;   }   }   public static String UTF8ToGBK(String str) {   try {   return new String(str.getBytes("UTF-16BE"), "GBK");   } catch (Exception ex) {   return null;   }   }   public static String GBK(String str) {   try {   return new String(str.getBytes("GBK"),"GBK");   } catch (Exception ex) {   return null;   }   }   public static String getStr(String str) {   try {   String temp_p = str;   String temp = new String(temp_p.getBytes("ISO8859_1"), "GBK");   temp = sqlStrchop(temp);   return temp;   } catch (Exception e) {   return null;   }   } 共5页。 1 2 3 4 5 :   为什么说乱码是中国程序员无法避免的话题呢?这个首先要从编码机制上说起,大家都是中文和英文的编码格式不是一样,解码也是不一样的!如果中国的程序员不会遇到乱码,那么只有使用汉语编程。汉语编程是怎么回事我也不大清楚,应该是前年吧,我一朋友给我介绍汉语编程,怎么不错不错?当时因为学习忙没去关注这个,等我闲了,那个朋友不弄这个,问他他也不说不大清楚,最后自己对这个学习也不了了之了。   今天我写这个不是讲解中英文之间的差距,解码等,我是将我在这几年工作遇到各种各样的乱码的解决方法,总结一样,也希望大家能把自己晕倒解决乱码的方法都说出来,咱们弄一个解决乱码的“葵花宝典”。   对于Java由于默认的编码方式是 UNICODE,所以用中文也易出问题,常见的解决是   String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);   1、utf8解决JSP中文乱码问题   一般说来在每个页面的开始处,加入: 以下是引用片段:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("UTF-8"); %>   request.setCharacterEncoding("UTF-8");   %>   charset=UTF-8 的作用是指定JSP向客户端输出的编码方式为“UTF-8”   pageEncoding="UTF-8" 为了让JSP引擎能正确地解码含有中文字符的JSP页面,这在LINUX中很有效   request.setCharacterEncoding("UTF-8"); 是对请求进行了中文编码   有时,这样仍不能解决问题,还需要这样处理一下:   String msg = request.getParameter("message");   String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");   out.println(st);   2、Tomcat 5.5 中文乱码   1)只要把%TOMCAT安装目录%/ webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到你的webapp目录/filters下,如果没有filters目录,就创建一个。   2)在你的web.xml里加入如下几行: 以下是引用片段: Set Character Encoding filters.SetCharacterEncodingFilter encoding GBK Set Character Encoding /*   3)完成.   2 get方式的解决办法   1) 打开tomcat的server.xml文件,找到区块,加入如下一行:   URIEncoding=”GBK”   完整的应如下:    以下是引用片段:   2)重启tomcat,一切OK。   3、xmlHttpRequest中文问题   页面jsp用的GBK编码   以下是引用片段: 代码 <%@ page contentType="text/html; charset=GBK"%>    javascript部分   代码    function addFracasReport() { var url="controler?actionId=0_06_03_01&actionFlag=0010"; var urlmsg="&reportId=" fracasReport1.textReportId.value; //故障报告表编号 var xmlHttp=Common.createXMLHttpRequest(); xmlHttp.onreadystatechange = Common.getReadyStateHandler(xmlHttp, eval("turnAnalyPage")); xmlHttp.open("POST",url,true); xmlHttp.setRequestHeader( " Content-Type " , " application/x-www-form-urlencoded); xmlHttp.send(urlmsg); }   后台java中获得的reportId是乱码,不知道该怎么转,主要是不知道xmlHttp.send(urlmsg);以后是什么编码?在后面用java来转,试了几种,都没有成功,其中有:    以下是引用片段:代码   public static String UTF_8ToGBK(String str) {   try {   return new String(str.getBytes("UTF-8"), "GBK");   } catch (Exception ex) {   return null;   }   }   public static String UTF8ToGBK(String str) {   try {   return new String(str.getBytes("UTF-16BE"), "GBK");   } catch (Exception ex) {   return null;   }   }   public static String GBK(String str) {   try {   return new String(str.getBytes("GBK"),"GBK");   } catch (Exception ex) {   return null;   }   }   public static String getStr(String str) {   try {   String temp_p = str;   String temp = new String(temp_p.getBytes("ISO8859_1"), "GBK");   temp = sqlStrchop(temp);   return temp;   } catch (Exception e) {   return null;   }   } 共5页。 1 2 3 4 5 : 下载本文示例代码


乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题乱码的处理!程序员永远无法避免的话题
阅读(928) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~