zoukankan      html  css  js  c++  java
  • Servlet 乱码问题

    今天在部署一个webservices程序的时候,从页面获取数据的servlet出现了乱码问题,在servlet中我已经把request.setCharacterEncoding("UTF-8");
    这段文字加入到代码中去,但是还是出现乱麻问题。
    到网上找资料,如下:JAVA是Unicode编码,你先转换成ISO8859-1,然后再转换成UTF-8

    request.setCharactrEncoding("ISO8859-1");//先转换成ISO8859-1

    name=request.getParameter("name"); //先转换成ISO8859-1

    byte[] byte_str =name.getBytes("UTF-8");

    String str = new String(byte_str);

    这样就是中文啦! 

    ------------------------------------------------------------------

    还有一种更简单的方法,就是直接在服务器里设置编码转换。用的是TOMCAT5.0.28。 
    在..Tomcat   5.0conf目录里找到SERVER.XML文件,用写字板打开它,设置如下: 
    里面增加一个属性就可以了,URIEncoding="GBK"
    测试通过,搞定。
     
    ------------------------------------------------------------------
    然后就是request.setCharacterEncoding("GB2312")这句话到底起了什么作用,如果它不能解决乱麻问题,我们用它来起什么作用,整理资料如下:
        (一) JSP页面上是中文,但是看的是后是乱码:
    解决的办法就是在JSP页面的编码的地方,因为Jsp转成Java文件时的编码问题,默认的话有的服务器是ISO-8859-1,如果一个JSP中直接输入了中文,Jsp把它当作 ISO8859-1来处理是肯定有问题的,这一点,我们可以通过查看Jasper所生成的Java中间文件来确认

    (二) 当用Request对象获取客户提交的汉字代码的时候,会出现乱码:
    解决的办法是:要配置一个filter,也就是一个Servelet的过滤器,代码如下:
    public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain)throws IOException, ServletException {

    request.setCharacterEncoding("GBK");

    // 传递控制到下一个过滤器
    chain.doFilter(request, response);
    }
  • 相关阅读:
    PHP数组、函数
    PHP 基本内容
    Swift基础--tableview练习
    iOS 协议delegate分六步
    UI09_UITableView 使用 单例
    css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?一起来$('.float')
    CSS 如何使DIV层水平居中
    HTML转义字符大全
    jQuery选择器总结
    jQuery 学习笔记_01
  • 原文地址:https://www.cnblogs.com/qylbg/p/3397199.html
Copyright © 2011-2022 走看看