问题描述:
    我在xp 系统下开发了一工程(GBK 编码),在xp 系统下,往linux服务器上的数据库里插入数据是没有问题的。(数据库和表格都是 GBK 编码的)。能正常插入和显示。。
    现在,我把该工程,放在linux 服务器上,考呗上去的。。然后启动程序。。能正常运行,也能正常插入数据,但是,在数据库里的数据却是 乱码!!!   I'm nearly crazy !! I don't know what can I do !!!!    在线等各位高手的援助。

解决方案 »

  1.   

    答:LINUX下默认编码是UTF-8,是不是程序中都是按GBK来写的?(WINDOW下默认是GBK)
      

  2.   

    是的。。我的程序中都是按照 GBK 来写的。我按你的意思试试啊谢谢先。。
      

  3.   

    jiangnaisong ,云上飞翔, 先谢谢你。现在我的程序能 插入中文了。。但是还有个问题:不能完全转化 。。现象如下:
      比如,“篱笆/大话爱情” ,插入后就成了 “篱笆???大话爱情”。就是里面有很多 “???”。。请问这是怎回事???
      

  4.   

    我用的是 new String(“篱笆/大话爱情”.getBytes("UTF-8"),"GBK"); 当插入后就成了 :“篱笆???大话爱情”。 哎 。
      

  5.   

    答:new String(“篱笆/大话爱情”.getBytes("UTF-8"),"GBK"); 这样写是错误的.你的意图是UTF-8转GBK,但这样写是不对的.
    1) "篱笆/大话爱情"这个串是UNICODE串
    2) 这个串要转在GBK字节序列(注:不是字符串)
     应使用:"篱笆/大话爱情".getBytes("GBK");
      

  6.   

    我刚才试了试你说的 :"篱笆/大话爱情".getBytes("GBK"); 这样得到的 怎么成了 “??????/??????" 了 ??还是不行。。请帮忙再解决一下。
      

  7.   

    1。你的程序编码是GBK,上传到linux下之后 你在页面提交的中文也是GBK编码,而linux下的是UTF-8编码
    2。每个数据库都有自己默认的编码格式,你可以修改配置
    建议:
    1.修改你的程序为UTF-8编码(实现过) 或者修改linux系统编码为GBK
    2.修改你的数据默认编码格式为GBK3.你可以通过编码转换来读取数据库中的乱码字符串 如:str.getBytes("ISO8859-1")