解决Linux下Java中文乱码问题

情况说明:

本地测试数据正常,发布到服务器(centos)后,部分出现乱码,通过检查,数据库中信息都是正常的。

 

  1. 服务器的语言为en,,并且没有安装语言包
  2. 服务器没有配置中文编码
  3. 其他没有乱码,只是局部发生乱码

这种情况,基本可以断定,局部的代码和系统相联系所造成的。

 

在/etc/profile中设置:

export LC_ALL="zh_CN.GB18030"
设置以后,ok!

 

 


****************************
就是从数据库中取出来时,在存入linux的文件里时,在字符流时制定编码格式。代码如下:
FileOutputStream fos=new FileOutputStream(new File(filePath),true);
Writer out=new OutputStreamWriter(fos,"UTF-8");
out.write(s);
out.write("\n");
out.flush();
fos.close();
out.close();
**********************
vi .bash_profile
export lang=zh_CN

vi /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en:zh_CN.GB18030:zh_CN:zh:zh_TW.big5:zh_TW:zh:ja_JP.UTF-8:ja_JP:ja:ko_KR.eucKR:ko_KR:ko"
SYSFONT="latarcyrheb-sun16"
只改第一个不管用,好像第二个尤其重要,必须改。
*******************
1、console终端乱码

  在/etc/profile文件的最后一行添加如下内容:

  export LC_ALL="zh_CN.GB18030"

2、xwindow终端乱码

  在/etc/sysconfig/i18n文件的最后一行添加如下内容:

  export LC_ALL="zh_CN.GB18030"
**************************

乱码分两种情况:
1.终端(纯shell界面)的乱码
vi /etc/profile
export LC_ALL="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF-8:en_US:en:zh:zh_TW:zh_CN.BIG5"
保存退出,reboot系统即可..

2.X-window(图形界面)的乱码
vi /etc/sysconfig/i18n
LANG="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF-8:en_US:en:zh:zh_TW:zh_CN.BIG5"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF-8:en_US:en:zh:zh_TW:zh_CN.BIG5"
保存reboot即可...
*********************

新发了台linux虚拟机,用VIM出现了中文乱码问题,查找了资料,解决方法如下:

vi /etc/sysconfig/i18n

将内容改为

LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"

这样中文在SSH,telnet终端就可以正常显示了

其中,主要修改的内容主要为zh_CN.GB18030,其中要注意VI个性的内容为根目录下,要注意权限
**************************
每次装完linux,用SSH连接,中文总是显示乱码。51Testing软件测试网

解决方法:编辑/etc/sysconfig/i18n,将其中的 LANG="zh_CN.UTF-8" 改为 LANG="zh_CN.GB2312" 。
&m^%k7X6X7IQ051Testing软件测试网 K!W|,r8cV&r5N
断开重新连接。
****************************
linux下中文乱码问题解决方案 (2008-06-07 12:55:45)
标签:linux windows 乱码 中文显示 it   分类:linux&mysql


从 windows传过来的文件拷到linux下是乱码,俺们又想在linux下显示中文,怎么办呢?我们首先进行测试,linux下的中文是否可以正常显 示?答:yes. 所以问题就比较明显了,windows下拷过来的不能显示,说明windows下和linux下支持的格式是不相同的.
linux下一般是采用utf-8的编码,而我们在windows上编辑文件时是gb2312的编码。所以导致中文编码会乱码。要更正这个问题实际上很简单只要把文件转换成utf-8编码格式然后再导入就ok啦。

然后使用如下命令进行转换:
iconv -f gb2312 -t utf-8 test.txt> testutf8.tzt
(-f 就是源编码,-t 转换目标编码,test.txt源文件,testutf8.txt生成目标编码文件)
备注:使用 iconv -l 可以查看系统支持编码格式。当然也可以添加其中的编码格式:

 

默认为utf8,如果想用其他编码如GBK

手动更改配置文件的命令:

shell> vi /etc/sysconfig/i18n

将LANG="zh_CN.UTF-8"修改为:

LANG="zh_CN.GBK"

保存并关闭,运行下面的命令使配置生效:

shell> source /etc/sysconfig/i18n

将终端字符编码显示为简体中文:

shell> vi /etc/profile.d/chinese.sh

添加下面这行:export LC_ALL=zh_CN.GBK

shell> source /etc/profile.d/Chinese.sh
*******************************
解决Linux操作系统下Java的中文乱码问题 
 
发布时间:2008.03.20 06:34     来源:赛迪网    作者:skid

在jdk15以后,只需在~/jre/lib/fonts/下建一个fallback目录,把你想在java中使用的字体烤贝到这个目录中即可


以下方法在fc6下测试通过,假设用户的jre路径为 /usr/java/jdk1.6.0_03/jre/


cd /usr/java/jdk1.6.0_03/jre/lib/fonts


sudo mkdir fallback


将C:\WINDOWS\Fonts\simsun.ttc拷贝到 /usr/java/jdk1.6.0_03/jre/lib/fonts/fallback文件夹内


ok!

 
***************************
相关文章:  
如何解决Tomcat下中文乱码问题?
我的乱码问题处理汇总
struts处理中文乱码问题总结

推荐圈子: Tapestry
更多相关推荐 现有个项目,运行于Linux平台下的tomcat服务中,在页面中查看传递的中文参数值,是乱码。解决方案如下,
第一种方法:在tomcat的server.xml中,对connector添加 URIEncoding="GBK"。
第二种方案:在接受参数程序中,设置语言编码。

 

下面也只是一种情况。

解决Linux下Java中文乱码问题

文章分类:操作系统

问题描述:

      一时心血来潮随便写了个AWT程序部署在Linux下,想测试一下JAVA的跨平台能力,结果发现功能一切正常,但中文都显示成了一个个的方块。

问题解决:

      一开始以为是系统语言设置问题,输入命令:

      #locale -a        //查看系统支持语言

      #LANG="zh_CN.utf8"     //设置系统语言

      设置完成后再次运行程序,发现问题依旧如故,这次是真的一点头绪也没有了,再次去网上搜索发现可能是JAVA JVM中字体支持过少的缘故,于是找到<JAVA_HOME>/jre/lib/fonts目录,执行:

      #mkdir fallback

      再找到Linux系统下的字体文件存放位置/usr/share/fonts/truetype/,我这里是OpenSUSE 11.2,其他的系统可能位置不太一样,因为不清楚具体需要哪种字体文件,所以将目录下的所有字体文件全部拷到刚才建立的fallback目录中,然后再 次在终端中运行程序,终于看到的了熟悉的中文界面。

注:此方法仅支持JDK1.5及以后版本,JDK1.4需要修改JAVA JVM的字体配置文件,在此处就不多赘述了。

你可能感兴趣的:(java,tomcat,windows,linux,ssh)