zoukankan      html  css  js  c++  java
  • GBK和UTF8之间的战争,websphere6.1乱码解决方案

    战争,折磨的都是码农...


    1.Tomcat默认编码,ISO8859_1,

    2.websphere6.1我自定义编码GBK

    3.旧项目编码GBK,

    4.新项目编码utf-8  


    这是背景


    旧项目发出请求,到新项目中,这就涉及了传参的编码问题,前篇文章(http://hi.baidu.com/ae6623/item/cae883036a9c6ccb75cd3cfa)介绍了如果解决Tomcat前台传UTF-8编码后,后台解析为UTF-8的解决方案,在Tomcat上运行很ok,近期,领导吩咐小码农将项目搞到websphere6.1上面,欢天喜地解决种种困难之后,终于将war包挂到了服务器上,服务器上的websphere6.1很奇葩,GBK编码,死活不能解码成UTF-8,后来,发现websphere它自己经过一些设置,看截图



    在通用JVM参数自定义编码:-Dclient.encoding.override=GBK 


    可以把前台传来的GBK不用解码就怎么传来的,怎么解出来了,所以我的解码程序就不用管了,但是这不是高潮,高潮是领导让Tomcat下也要能够运行,我次奥,要挑战逻辑了,前台GBK,到websphere不需要解码,前台GBK到Tomcat必须字符集切换一下(就是重新编码成识别的字符串,用param = new String(param.getBytes("ISO8859_1"), "GBK");)这其中,经过了N多的尝试,一开始,我就让它


    String param = req.getParameter("docNo");param = new String(param.getBytes("ISO8859_1"), "utf-8");

    发现失败,依然乱码乱的不行,就换


    param = new String(param.getBytes("GBK"), "utf-8");

    更乱,再换


    param = new String(param.getBytes("utf-8"), "GBK");

    靠,乱的还是那么有型....放弃了,各种百度,发现又是前台二次编码,后台二次解码,二次你大爷!!!!于是尝试


    param = new String(param.getBytes("ISO8859_1"), "GBK");

    ok ,解决问题,不再乱码...


    这其中的艰辛啊,只有被玩过的人才知道玩过的东西真他M的难玩....


    我自己理解的就是如果前台GBK编码过来,你后台不需要解码,因为Tomcat对于req.getParameter("docNo")已经自己解码了一次了,我们只需要转换一下字符集即可!


    2013年3月20日15:01:58

    qq 394263788

    落雨


  • 相关阅读:
    Java虚拟机详解(二)------运行时内存结构
    Java虚拟机简介
    JAVA 用数组实现 ArrayList
    Java 集合详解
    Spring+SpringMVC+Mybatis框架集成搭建教程
    Java代理
    单例模式(三)
    Node.js安装及环境配置
    Java 并发编程:核心理论(一)
    Java 并发编程:volatile的使用及其原理(二)
  • 原文地址:https://www.cnblogs.com/ae6623/p/4416560.html
Copyright © 2011-2022 走看看