如题,我在windows下开发,有一个类里面有中文,运行正常。放在FreeBSD下,运行出错。经查,原来那些中文都变成了乱码。FreeBSD下JAVA默认的字符集为iso-8859-1我应该怎么解决这个问题?另,我是在eclipse下开发,有没有选项可以设定编译时指定的字符集呢?
如题,我在windows下开发,有一个类里面有中文,运行正常。放在FreeBSD下,运行出错。经查,原来那些中文都变成了乱码。FreeBSD下JAVA默认的字符集为iso-8859-1我应该怎么解决这个问题?另,我是在eclipse下开发,有没有选项可以设定编译时指定的字符集呢?
可以改eclipse下的编码
另外用System.setProperty()来设置运行时的字符集
我是在网上购买的JSP空间,那边的服务器的设置我是改不了的,只能改自己的代码我可以通过在编译时用javac -encoing iso-8859-1 xx.java来解决吗?
改一下字符编码?再重新编译一下了
我现在有点无从下手的感觉,具体我应该怎么做?服务器那边,我只能通过FTP把编译好的类传过去。我用的是eclipse,必须要依赖它来编译类。(如果用javac手动去编译,该文件依赖那么多的包和JAR,手动不太可能)我应该怎么做???能说得再详细一些吗?
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决定。