1. 程式人生 > >linux 中文亂碼解決辦法

linux 中文亂碼解決辦法

fixed export 機器 dir amp vim亂碼 linux操作 簡單 str

就是從數據庫中取出來時,在存入linux的文件裏時,在字符流時制定編碼格式。代碼如下:
FileOutputStream fos=new FileOutputStream(new File(filePath),true);
Writer ut=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"
只改第一個不管用,好像第二個尤其重要,必須改。
***************************************

方法一: 打開putty主程序,選擇window-〉Appearance-〉Font settings-〉Change…,選擇Fixedsys字體,字符集選擇CHINESE_GB2312。在window-〉Appearance -〉Translation中,Received data assumed to be in which character set 中,把Use font encoding改為UTF-8如果經常使用,把這些設置保存在session裏面. 現在打開putty,登錄成功後,在shell中輸入:export LC_ALL=’zh_CN.utf8′

方法二: 編輯/etc/sysconfig/i18n 將第1句“LANG=”zh_CN.UTF-8″”改為“LANG=”zh_CN.GB18030″”,完成後保存重新登錄就可以顯示正常了


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)
從 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的中文亂碼問題
在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文件夾內 centos5.2配置完成後,正常能顯示中文,查看後發現支持utf-8字符集。
而putty和ssh secure shell連接卻發現亂碼,主要表現為執行vim亂碼,su命令亂碼。
使用$locale命令查看,出現如下:
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
LC_CTYPE=”zh_CN.UTF-8″
LC_NUMERIC=”zh_CN.UTF-8″
LC_TIME=”zh_CN.UTF-8″
LC_COLLATE=”zh_CN.UTF-8″
LC_MONETARY=”zh_CN.UTF-8″
LC_MESSAGES=”zh_CN.UTF-8″
LC_PAPER=”zh_CN.UTF-8″
LC_NAME=”zh_CN.UTF-8″
LC_ADDRESS=”zh_CN.UTF-8″
LC_TELEPHONE=”zh_CN.UTF-8″
LC_MEASUREMENT=”zh_CN.UTF-8″
LC_IDENTIFICATION=”zh_CN.UTF-8″
LC_ALL=
解決方案:
1. 對於putty0.6版本
a.修改centos上/ect/sysconfig/i18n內容為:
LANG=”zh_CN.UTF-8″
b.修改putty的configuration窗口內windows->Appearance->font setting為新宋體,10號字。
修改Translation的Receive data assumed to be in which character set為:
UTF-8。(因為下來列表中沒有中文字符集,GB2312或cp936)。
這樣修改完成後,putty就正常支持中文顯示了。
2.對於ssh secure shell版本。
a.將配置的字體改成宋體,但是還是亂碼,
b.修改centos的/ect/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=”latarcyrheb-sun16″
—以上內容是網上找到了,照著寫了。
發現連接ssh secure shell可以正常顯示中文。
用$locale查看,上面看到的配置都變成了GB18030編碼了
** 但是又用putty連接,卻又變成了亂碼,我理解因為putty仍然用的是utf8編碼,
而配置ssh secure shell時,將centos改成gb18030編碼了,所以亂碼。
c.到服務器上,重新啟動了centos,發現顯示中文也正常。
3. 如果發現ssh secure shell有問題,或相關的引起問題,則重新配置putty使用,
配置方案可以參考上述配置。
結論:
因為ssh secure shell窗口符合window顯示,所以暫時定為使用ssh secure shell客戶端。
而其也綁定了ftp上傳功能,相對方便。
變化:考慮建立mysql等多處使用utf-8編碼,所有仍然使用putty客戶端,系統編碼改成utf-8
##############################################################
現象:用SSH軟件連接時,中文是亂碼解決:修改/etc/sysconfig/i18n文件,將其改成以下內容: LANG=”zh_CN.GB18030″LANGUAGE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”SUPPORTED=”zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en”SYSFONT=”latarcyrheb-sun16″#source /etc/sysconfig/i18n重啟機器,問題應該解決了。CentOS更改LANG=”zh_CN.GB18030″SUPPORTED=”zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en”SYSFONT=”lat0-sun16″############################################################## 修改 /etc/profile增加export LC_ALL=zh_CN # for linux: zh_CN export LANG=zh_CN # for linux: zh_CN即可解決.

linux 中文亂碼解決辦法