新到一项目,客户那边的oracle编码为“ISO-8859-1”(很是气愤,装个GBK的他会死)。想请教一下,碰到这种情况,整个项目如何处理才能最低限度的避免随处可见的乱码问题。我的设想:
1.页面用ISO-8859-1。
3.tomcat的server.xml中也改为“ISO-8859-1”。
4.filter也设为ISO-8859-1。我试了下,做了个小列子,刚刚开始就碰到问题一些问题 。比如:
    在java类中定义一个String s ="该死的乱码";
然后传到页面上,我用的jsp表达式显示出来为乱码。所以想问问高人,如何从整个项目的角度考虑,来处理这些问题?
        

解决方案 »

  1.   

    如果你的网站不考虑国际化的话(比如说日语,韩语),那么可以都设成GBK的编码格式,只是在Oracle的读取和写入的时候加一个编码格式转换的函数就好了。
    不过最好都统一成UTF-8的格式
      

  2.   

    如果编码想要中文,那就统一用GBK
    所有的地方都转换为同一的GBK
      

  3.   

    我也是个初学者,可能说的不对
         JSP国际化
         你可以写一个.properties文件,把你需要的文件用ISO-8859-1转一下,然后用标签把变量名取出来
    在XML文件里配置一下就好了
      

  4.   

    我刚开始也这样想的,但是在oracel的读取和写入时对编码进行转换是个很烦的问题。
      

  5.   

    1 ISO肯定不能直接保存GBK,应为字符集不行
    2 我能想到的唯一方法,就是给所有的保存到数据库的数据做Base64编码,无论他是什么,都编码
    显示的时候,再解码。
      

  6.   

    1 ISO肯定不能直接保存GBK,应为字符集不行
    2 我能想到的唯一方法,就是给所有的保存到数据库的数据做Base64编码,无论他是什么,都编码
    显示的时候,再解码。
      

  7.   

    weblogic的连接池应该直接支持转码
      

  8.   

    答:将GBK的汉字串可以转成ISO串,存入ORACLE中。然后再从库中读出ISO串,还原成GBK串就行了。
    如://GBK==>ISO串
    String s_8859_1=new String("汉字".getBytes("GBK"),"ISO-8859-1");
    //ISO串==>GBK
    String s_GBK=new String(s_8859_1.getBytes("ISO-8859-1"),"GBK");这样的转换没有数据丢失。
      

  9.   

    大家的意思就是說,在进行数据库操作之前都用gbk,
    然后对数据库的读取和写入时进行同意的编码了。。