1. 程式人生 > >linux下由於系統編碼問題造成亂碼的解決辦法

linux下由於系統編碼問題造成亂碼的解決辦法

 

下面介紹一下由於linux系統編碼設定不正確造成潤乾報表應用亂碼問題的解決辦法。

第一步:檢查linux的系統編碼。

檢查linux的系統編碼,確定系統是否支援中文。在linux系統的終端中輸入命令:locale,就會看到打印出的系統編碼資訊。如果打印出來的資訊如下,則說明系統的編碼不支援中文:

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″

支援中文的系統編碼打印出來的資訊應該如下圖所示:

第二步:修改系統預設編碼設定。

如果發現系統編碼不支援中文的話,那麼就要修改系統編碼,使其支援中文,這樣潤乾報表的中文在應用中才不會亂碼。修改系統編碼的程式碼如下:

/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″

系統的預設字符集是英文,如果要把字符集設定成支援中文的,可以通過設定這個檔案來改變系統的預設字符集。

另外,也可在使用者的環境變數或者使用者的環境變數檔案加入路徑變數的宣告:

在系統的預處理檔案中宣告,這樣對整個系統起作用:

#vi /etc/profile

在檔案尾加入:

LC_ALL=”zh_CN.GBK”
export LANG=”zh_CN.GBK”

在使用者的預處理檔案中宣告,對單獨的使用者起作用:

#vi /root/.bash_profile

在檔案尾加入:

export LC_ALL=”zh_CN.GBK”
export LANG=”zh_CN.GBK”

以上配置重新啟動伺服器使更改生效。

第三步:檢視修改過的系統預設編碼。

通過以上步驟的操作然後重啟電腦,再在終端中輸入命令:locale,然後就會看到系統的字符集資訊變成了如下內容:

經過以上修改,由於系統預設編碼不支援中文造成的亂碼就可以順利解決了。