如题,我在windows下开发,有一个类里面有中文,运行正常。放在FreeBSD下,运行出错。经查,原来那些中文都变成了乱码。FreeBSD下JAVA默认的字符集为iso-8859-1我应该怎么解决这个问题?另,我是在eclipse下开发,有没有选项可以设定编译时指定的字符集呢?

解决方案 »

  1.   

    在eclipse下edit->setencodeing
    可以改eclipse下的编码
      

  2.   

    我的编码在windows下默认是gbk 把freebsd下java默认字符集改成zh_CN.GBK即可
    另外用System.setProperty()来设置运行时的字符集
      

  3.   


    我是在网上购买的JSP空间,那边的服务器的设置我是改不了的,只能改自己的代码我可以通过在编译时用javac -encoing iso-8859-1 xx.java来解决吗?
      

  4.   

    是有这种现象出现linux/unix和windows的编码本来就不一样
    改一下字符编码?再重新编译一下了
      

  5.   


    我现在有点无从下手的感觉,具体我应该怎么做?服务器那边,我只能通过FTP把编译好的类传过去。我用的是eclipse,必须要依赖它来编译类。(如果用javac手动去编译,该文件依赖那么多的包和JAR,手动不太可能)我应该怎么做???能说得再详细一些吗?
      

  6.   

    在elipse中,通过右键->属性->文本文件编码设置的编码与javac编译时的编码,是不是一回事?如果它设成了iso-8859-1,里面的中文都乱了
      

  7.   

    1)
    unix上的字符集与windows下是不一样的,一般情况下,unix下的字符集为
    ISO-8859(看LANG的设置,如我们一般用LANG=en_US.iso885915),windows 下一般为GBK
    在用JDK1.5以前的JAVA编译时,生成代码的符集缺省为系统字符集,所以更换系统会使有些字符无法显示
    最简单的解决方法:
      用最新的jdk1.5重新编译所有的源码(更新jvm没用,要更新JDK)
    当然,在程序中输出字符时用转码也可解决,用javac的-encoding也可以2)
    我在linux9及solaris8(sparc)下用JDK 1.5.0_05
    javac -encoding GBK test.java
    编译后的test.class在windwos 2000下能正常显示中文
    我还是怀疑你的jdk版本问题(以前我在solaris8上用jdk1.4编译的文件在w2k下有时也有问题)
    1.建议升级你的JDK版本
    2.将unix的字符集改成中文
      LANG=zh_CN
      export LANG
    如果是bash
     可直接用export LANG=zh_CN3)在每次调用JOptionPane和JFileChooser前,都执行this.setLocale(Locale.ENGLISH)或this.setLocale(Locale.CHINESE)
    这样的目的是强行把JAVA的运行平台设定的执行环境为ENGLISH或CHINESE,这样之后,调用默认的窗口时就不会用javawebstart决定。
      

  8.   

    问题解决,如Mervyn(御剑乘风来,除魔天地间。) 所说,更改字符集后,编译时即以新的字符集为准。我先在GBK字符集下编辑,写好后,将其改为ISO-8859-1,然后再编译,把生成的类覆盖过去,就好了。