linux下因?yàn)橄到y(tǒng)編碼問(wèn)題造成亂碼的解決辦法
最近一段時(shí)間遇到一些潤(rùn)乾報(bào)表的應(yīng)用在linux系統(tǒng)下面亂碼的問(wèn)題,,最后檢查后都發(fā)現(xiàn)是客戶的linux系統(tǒng)默認(rèn)編碼設(shè)置的不正確造成的,這種原因造成亂碼的現(xiàn)象一般都是程序里面寫(xiě)死了的中文字符能正常展現(xiàn),,但是從數(shù)據(jù)庫(kù)中取出來(lái)的或者從程序中讀出來(lái)的中文字符就會(huì)出現(xiàn)亂碼,,下面就介紹一下由于linux系統(tǒng)編碼設(shè)置不正確造成潤(rùn)乾報(bào)表應(yīng)用亂碼問(wèn)題的解決辦法。 第一步:檢查linux的系統(tǒng)編碼,。 檢查linux的系統(tǒng)編碼,,確定系統(tǒng)是否支持中文。在linux系統(tǒng)的終端中輸入命令:locale,,就會(huì)看到打印出的系統(tǒng)編碼信息,。如果打印出來(lái)的信息如下,則說(shuō)明系統(tǒng)的編碼不支持中文: LANG=en_US.UTF-8 LC_CTYPE=”en_US.UTF-8″ LC_NUMERIC=”en_US.UTF-8″ LC_TIME=”en_US.UTF-8″ LC_COLLATE=”en_US.UTF-8″ LC_MONETARY=”en_US.UTF-8″ LC_MESSAGES=”en_US.UTF-8″ LC_PAPER=”en_US.UTF-8″ LC_NAME=”en_US.UTF-8″ LC_ADDRESS=”en_US.UTF-8″ LC_TELEPHONE=”en_US.UTF-8″ LC_MEASUREMENT=”en_US.UTF-8″ LC_IDENTIFICATION=”en_US.UTF-8″ 支持中文的系統(tǒng)編碼打印出來(lái)的信息應(yīng)該如下圖所示: 第二步:修改系統(tǒng)默認(rèn)編碼設(shè)置 如果發(fā)現(xiàn)系統(tǒng)編碼不支持中文的話,,那么就要修改系統(tǒng)編碼,,使其支持中文,,這樣潤(rùn)乾報(bào)表的中文在應(yīng)用中才不會(huì)亂碼,。 修改系統(tǒng)編碼的方法如下: /etc/sysconfig/i18n Controls the system font settings. The language variables are used in /etc/profile.d/lang.sh. An example i18n file: LANG=”en_US.GB18030″ LANGUAGE=” en_US.GB18030: en_US.GB2312: en_US “ SUPPORTED=” en_US.GB18030: en_US:en:en_US.UTF-8:en_US:en” SYSFONT=”lat0-sun16″ 以上是系統(tǒng)的默認(rèn)字符集是英文的如果要把字符集設(shè)置成支持中文的,,可以通過(guò)設(shè)置這個(gè)文件來(lái)改變系統(tǒng)的默認(rèn)字符集。 另外,,也可在用戶的環(huán)境變量或者用戶的環(huán)境變量文件加入路徑變量的聲明: 在系統(tǒng)的預(yù)處理文件中聲明,,這樣對(duì)整個(gè)系統(tǒng)起作用: #vi /etc/profile 在文件尾加入 LC_ALL=”zh_CN.GBK“ export LANG=”zh_CN.GBK“ 在用戶的預(yù)處理文件中聲明,,對(duì)單獨(dú)的用戶起作用: #vi /root/.bash_profile 在文件尾加入 export LC_ALL=”zh_CN.GBK“ export LANG=”zh_CN.GBK“ 以上配置重新啟動(dòng)服務(wù)器使更改生效。 第三步:查看修改過(guò)的系統(tǒng)默認(rèn)編碼,。 通過(guò)以上步驟的操作然后重啟電腦,再在終端中輸入命令:locale,,然后就會(huì)看到系統(tǒng)的字符集信息變成了如下內(nèi)容: 這樣系統(tǒng)編碼就支持中文了,經(jīng)過(guò)以上修改,,由于系統(tǒng)默認(rèn)編碼不支持中文造成的亂碼就可以順利解決了,。 |
|