• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Tomcat中Java/jsp中文问题完全解决方案

发布: 2007-6-22 07:38 | 作者:   | 来源:   | 查看: 14次 | 进入软件测试论坛讨论

领测软件测试网

   
  Tomcat 3.23以下的版本
  对于Tomcat 3.23以下版本,Java中的中文问题网上已经谈了不少,一般遇到中文问题使用转换函数转换.toChinese()
  public static String toChinese(String strvalue)
  {
  try{
  if(strvalue==null)

  return null;
  else
  {
  strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
  return strvalue;
  }
  }catch(Exception e){
  return null;
  }
  }
  
  凡是涉及中文字符串,如从数据库中读取中文字符串,或变量名赋值时,使用toChinese函数:
  toChinese("这是中文字符串")
  
  注:该办法在使用javamail发送中文信息时似乎有问题
  
  Tomcat 4.0以上的版本
  在4.0以后的版本,已经不需要象3.23版本中使用字符转换函数:
  
  (1)编译javabean时 javac 命令行加上-encoding ISO8859_1
  
  (2)在Jsp头部中加入<%@ page contentType="text/html;charset=ISO8859_1" %>
  
  是不是很简单? 使用本办法基本可以对付实际应用,推荐!
  
  但也有一个缺点是,通过form表单get参数;或在url后附带中文,这个办法就失效,我相信应该有办法解决.
  
  该办法原理就是在java的各个环节统一编码为:ISO8859_1.
  
  修改tomcat
  该办法是一位网友在论坛贴出的,我没有试验,转载于此:
  
  只要修改一个地方就行了,文件为:
  tomcat4/src/catalina/src/share/org/apache/catalina/connector/HttpReque
  stBase.java
  找到protected void parseParameters()方法,把
  if (encoding == null)
  encoding = "ISO-8859-1";
  改为
  if (encoding == null)
  encoding = "GBK";
  编译:
  解开jakarta-servletapi-4的原码包,找到servlet.jar文件设置到CLASSPATH
  找到tomcat4.0.1的bin包将catalina.jar设置到CLASSPATH.
  因为编译时要使用这些api.
  然后javac HttpRequestBase.java生成两个class文件.
  解开catalina.jar jar xvf catalina.jar(tomcat bin包中的)
  覆盖调原来的两个class文件:
  jar cvf catalina.jar org
  即可
  重启tomcat4,一切OK!,你再也不用编写烦人的编码转换了。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网