不同环境下的str.getBytes().length!=str.length()区别?
我在测试环境中判断是否有全角没有问题的。在正式环境就不一样的结果了。
两个都是Unix系统,但是系统语言不一样。
有没有办法使之在不同环境下运行结果一致?
也就是说要以什么编码去取,才会一致。
我的页面是以UTF-8编码的。
是否str.getBytes('UTF-8').length!=str.length()即可,
还是需要str.getBytes('UNICODE').length!=str.length().
或者都不行,需要其他的?望指教?

解决方案 »

  1.   

    以前开发遇到过这个问题,就是因为编码不一致造成的,最后取的时候全部统一为按utf-8取if(str.getBytes('UTF-8').length!=str.length()){
        do something...
    }
      

  2.   

    getByte()采用默认的编码,默认是什么呢?这个就和服务器其的配置有关系了。所以还是自己指定比较稳妥。
      

  3.   

    使用UTF-8最为保险:
    str.getBytes("UTF-8").length!=str.length();使用Unicode就有问题了,下面这个不等式不管什么字符永远是true。
    str.getBytes("Unicode").length!=str.length();
      

  4.   

    getBytes("Unicode")为true,那是因为Java用的就是unicode吧.....
    哎,星星们真积极...我又只有洗锅的份 ...
    说起来我们Java区还是蛮幸福的,一大群猩猩巨活跃...