linux 下 中文亂碼問題解決

2021-07-30 21:08:53 字數 1543 閱讀 5346

我們知道我們的作業系統是無所謂中文版和英文版的,無論是windows還是linux,系統發行的時候全世界都是一樣的核心,系統呈現給我們是英文還是中文,完全取決於你選擇的語言包。不同國家的人在安裝使用的時候選擇屬於自己國家的語言包,應用程式中的語言也不是寫死的,它根據系統的設定來呼叫相關的語言,所以,乙個應用程式寫出來不經過修改,全世界不同國家的使用者都可以以母語介面使用它,這就事所謂的internationalization(國際化),簡稱 i18n。這也是未來軟體的發展趨勢。

那麼,如果我在系統中安裝了不同的語言包和不同的字型,系統是如何判斷我所要的語言介面並呼叫相關的字型的呢?系統中那些檔案和變數在控制這些呢?

可以使用locale命令,檢視當前系統預設採用的字符集

# locale

在redhat/centos系統下,記錄系統預設使用語言的檔案是/etc/sysconfig/i18n,如果預設安裝的是中文的系統,i18n的內容如下:

lang="zh_cn.utf-8" 

sysfont="latarcyrheb-sun16" 

supported="zh_cn.utf-8:zh_cn:zh"

其中lang變數是language的簡稱,稍微有英語基礎的使用者一看就看出來這個變數是決定系統的預設語言的,即系統的選單、程式的工具欄語言、輸入法預設語言等。sysfont是system font的簡稱,決定系統預設用哪一種字型。supported變數決定系統支援的語言,即系統能夠顯示的語言。需要說明的是,由於計算機起源於英語國家,因此,不管你把這些變數設定成什麼,英語總是預設支援的,而且不管用什麼字型,英文本型總包含在其中。

那麼如何顯示中文呢?

1、系統必須安裝中文語言包才行

# yum -y groupinstall chinese-support

2、僅僅有語言包還不行,我們得設定相應的字符集

好了,經過上面的設定,在終端上應該能夠顯示中文了。

3、ssh遠端終端亂碼

如果ssh終端還是亂碼,那麼我們也需要對終端軟體的編碼進行設定。

4、如果終端還是中文亂碼腫麼辦?

對ssh軟體進行設定,選擇乙個支援中文的字型。

linux windows 之間相互需要修改檔案,然後亂碼。

拷貝上去後經常發現中文顯示亂碼。。原因是windows中預設的檔案格式是 gbk(gb2312),而linux一般都是utf-8。比較繁瑣的方法是在windows下用程式把內容轉換為utf-8編碼格式的,但是相當麻煩, 而且遇到乙個檔案轉一回。下面介紹一下,在linux中如何一勞永逸的解決這個問題,檢視檔案的編碼及如何進行對檔案進行編碼轉換。

為了避免這些問題,最好的方式就是統一編碼。對於文字檔案,都統一儲存為utf8格式,windows下面不要使用word,記事本,推薦sublime text, 或者notepad++。

linux中文亂碼問題解決

linux中文亂碼問題解決檢視當前系統語言 登陸linux系統開啟操作終端之後,輸入echo lang可以檢視當前使用的系統語言。檢視安裝的語言包 檢視是否有中文語言包可以在終端輸入locale命令,如有zh cn 表示已經安裝了中文語言 如果沒有中文語言呢 如何修改系統語言為中文 1 臨時更換語言...

linux下中文亂碼問題解決方案

從windows傳過來的檔案拷到linux下是亂碼,俺們又想在linux下顯示中文,怎麼辦呢?我們首先進行測試,linux下的中文是否可以正常顯示?答 yes.所以問題就比較明顯了,windows下拷過來的不能顯示,說明windows下和linux下支援的格式是不相同的.linux下一般是採用utf...

linux下mysql中文亂碼問題解決辦法

一 lampp環境下的資料庫亂碼問題 問題描述 在做mysql練習的時候發現新建立的資料庫中插入資料表中的記錄中文出現亂碼的問題,如下圖 經過多方查證,整裡如下文擋 前提 我自己的環境是使用的lampp下的mysql,該配置檔案是在 opt lampp etc my.cnf 如果是自己安裝的mysq...