将Windows下编写的Java程序移植到Linux下的编码解决
需要将Windows的报文服务(MessageServer)程序移植到Linux下,其中涉及到编码的问题,在Windows下正常的中文,到Linux下、以及Linux的Eclipse打开就全成了乱码了,当然这可是不是我们所想要的结果,程序的提示还是得保证中文,这样才能够明白。
我使用的Linux为RedFlag6.0,感觉挺好用的,安装软件之类可以不需要记那些命令了,类似于Windows一样,在文件上面点击右键,可以解压缩及压缩、安装等操作了,并且有一些环境变量它他还自动设置好,如安装JDK的时候,会设置PATH,但是CLASSPATH就得自己设置了。
解决乱码分两种,一种是解决在Linux下,采用其内置查看器查看的时候,要能够正确显示中文,这里就需要设置其默认编码,我在本机的ECLIPSE默认的编码为GBK,在Linux下,用其自带的编码器查看就不正确,显示乱码,这说明RG6中的默认编码不为GBK,默认的应该是UTF-8,这里就要设置其默认编码为GBK,这里可以在两个地方设置环境变量,一个是".bash_profile"(注:此在root的根目录下,通常是隐藏的,在命令模式下可以编码,如打入命令:"vi .bash_profile",该文件bash_profile是每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。相当于WINDOWS中的用户环境变量一样);另外一个是".profile",在/etc下,相当于WINDOWS中的系统变量存放处,所以这里我们设置任意一个地方都可以的。这里例出修改"/root/.bash_profile":
1.vi .bash_profile(/root下 ),进入vi编辑器后,按i进入插入模式即可编辑
2、在最后加上如下几句,表示设置一些默认编码为GBK:
export LC_ALL=zh_CN.GBK
export LC_CTYPE=zh_CN.GBK
export LANG=zh_CN.GBK
3、保存该文件。先按ecs,再输入":wq!",因为".bash_profile"为只读的,最后加"!"表示强制执行
4、要使配置生效,退出vi后,再输入命令". .bash_profile",命令的读法为"点空格点bash_profile",再次双击到Java文件中上,即可正常显示中文了,不过前提是在WINDOWS下的ECLIPSE的默认编码为GBK,其它编码类似。
以上只是解决了可以在Linux中双击查看不会出现乱码,但是在ECLIPSE中查看还是乱码,可以通过
“window->preferences...>workspace”的右中部有显示编码的部份,查以查看到其默认编码为UTF-8,但是我们点下面的OTHER下拉框却没有GBK,最后发觉原来那个框是可以输入的,输入GBK,点确定,中文显示正常,搞定。