当前位置:  技术问答>java相关

Apache+Tomcat url传递的中文字符串乱码问题

    来源: 互联网  发布时间:2015-09-18

    本文导语:  message = "用户名或密码错误,请重新输入"; response.sendRedirect("login.jsp?message="+message); //这里传递的参数在地址栏里就是????乱码 在Tomcat中则正常 有谁解决过?请帮忙 | 在4.0以后的版本,已经不需要象...

message = "用户名或密码错误,请重新输入";
response.sendRedirect("login.jsp?message="+message); //这里传递的参数在地址栏里就是????乱码
在Tomcat中则正常

有谁解决过?请帮忙


|
在4.0以后的版本,已经不需要象3.23版本中使用字符转换函数:

(1)编译javabean时 javac 命令行加上-encoding ISO8859_1

(2)在Jsp头部中加入


|
public static String getStr(String strInString)
  {
    try {
      return new String(strInString.getBytes("ISO8859-1"),"gb2312");
    }
    catch (Exception ex) {
      return "";
    }
  }
  public static String charToISO(String strInString){
    try {
      return new String(strInString.getBytes("gb2312"),"ISO8859-1");
    }
    catch (Exception ex) {
      return "";
    }
  }
.....
String ranmessage = getStr(message);
response.sendRedirect("login.jsp?message="+ranmessage);

|
解决办法:
第一:
在jsp页面加入:

或者在servlet里面
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html; charset=gb2312");
上面的如果在不行就用如下的方法在数据入库前进行调用:
public static String UnicodeToChinese(String s){
  try{
     if(s==null||s.equals("")) return "";
     String newstring=null;
     newstring=new String(s.getBytes("ISO8859_1"),"gb2312");
     return newstring;
    }
  catch(UnsupportedEncodingException e)
  {
  return s;
  }
  }

public static String ChineseToUnicode(String s){
  try{
  if(s==null||s.equals("")) return "";
  String newstring=null;
  newstring=new String(s.getBytes("gb2312"),"ISO8859_1");
   return newstring;
  }
  catch(UnsupportedEncodingException e)
  {
  return s;
 }
  }

|


|
如果在你的URL中需要传递中文,就用java.net.URLEncoder.encode()进行编码,这样就可以解决了。
示例:
 点击
在接受页面上面加上

如果要将数据插入数据库要做处理的
如将content的内容插入数据库,就要处理一下。
content = new String(content.getBytes("ISO8859_1"),"GB2312") ;

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • apache中文问题
  • REDHAT8下APACHE中文网页显示问题,谢谢!
  • freebsd下安装好apache以后,自己做的页面怎么不能显示中文?
  • 怎样使Apache显示中文?
  • tomcat+apache+win2000显示中文问题
  • 为什么在以Apache作为服务器时客户端无法正常显示中文?
  • 用linux下的apache做web服务,但在windows下浏览页面不能正常显示中文?
  • Apache Tomcat 4.0 支持中文吗?
  • apache+tomcat3.2.3+mm.mysql+mysql3.22+jdk1.3.1中文问题,急!!!!分不够还可以再加..
  • Apache如何启用gzip压缩
  • 想用APACHE做WEBSERVER,但不会用APACHE,请教。
  • Apache Hadoop 项目主页及介绍
  • apache日志文件总是空的,重起apache也没用。
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 安装完apache测试主页发现用的是系统自带的apache,该怎么办?
  • Apache hadoop当前各个版本说明
  • SUN OS5.8怎么没有make ,我想装APACHE2.0不知道怎么下手,原来的APACHE1.3有不知道怎么卸载
  • Windows下php 5.3.5和apache2安装配置及测试
  • 假设现在需要从网上下载的压缩包apache2,如何以dso模式安装在/home 目录的apache目录中,写出完整命令
  • Apache HTTP服务器2.4中的新功能概览
  • Apache 2.0 好像不支持Tomcat,我没看到哪位用 Apache 2.0 连接上 Tomcat 的
  • Apache HTTP Server(httpd)下载安装以及如何配置java(tomcat)和php详细介绍
  • linux下重装apache,却无法安装apache模块?
  • Apache默认是不支持SSI如何给Apache增加SSI支持
  • 我装了一个redhat9.0, 我如何卸载掉它原来的apache,然后重新装一个apache?
  • 请问TOMCAT和APACHE怎样结合使用呢?就像PHP和APACHE结合使用一样?
  • 真痛苦:resin装好了,Apache装好了(开始用pws改成Apache还是不行),但就是不执行我的jsp,在Win98下面
  • 我连接apache和tomcat之后为什么apache不能启动?
  • 100分!tomcat4.0.4+Apache可以不用从新编译apache就可以集成tomcat吗?因为我看到:.....
  • 急!Ubuntu10.04 apache2和tomcat6 mod_jk 整合 实现apache2的代理问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3