不会
可能是你的系统不支持unicode

解决方案 »

  1.   

    不是,是操作系统的编码方式不同,java是unicode编码的。在linux下好像是iso8859吧。
      

  2.   

    to kreven
    你的意思是,不管什么系统,对于string,
    都是unicode的,在内存中是完全一致的?
    那么对查询数据库来说,网络间传输的查询条件(就是这个string)
    也是完全一样的啊.那么为什么会出现,同样的代码在linux下查询不成功那?
    数据库是同一台.
      

  3.   

    to zuxingyuan
    你提到"不同的平台上对字符的编码解释不同,
    在执行的过程中出现了转译错误"这个转译发生在什么阶段那?
    对java来说,string是unicode编码.
    如果我们把数据库操作看成一次网络通信.
    那么不管在那个平台运行网络间传输都的应该是unicode的啊.操作系统的编码,在这个过程中,是怎么起作用的?3x
      

  4.   

    我想问题出在class文件编译上。采用javac进行编译,jvm会默认使用本地平台的编码进行解析.java文件,如果是在windows上就会使用gbk,那么文件中的中文就会以gbk编码,如果是在linux,编码就会采用iso-8859-1;如果在windows上的编译文件拿到linux上运行,由于中文部分的编码格式不同,肯定得不到正确的结果,因此要进行转码,可以是象搂主那样在程序中转换,也可以在编译的时候指定编码,例如javac -encoding ISO-8859-1 MyJava.java