linux文件亂碼怎麼解決
『壹』 文件在linux顯示亂碼怎麼解決
linux下經常遇到的編碼問題如果你需要在Linux中操作windows下的文件,那麼你可能會經常遇到文件編碼轉換的問題。Windows中默認的文件格式是GBK(gb2312),而Linux一般都是UTF-8。
查看編碼的方法
方法一:file filename
方法二:在Vim中可以直接查看文件編碼
:set fileencoding
如果你只是想查看其它編碼格式的文件或者想解決用Vim查看文件亂碼的問題,那麼你可以在
~/.vimrc 文件中添加以下內容:
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
這樣,就可以讓vim自動識別文件編碼(可以自動識別UTF-8或者GBK編碼的文件),其實就是依照fileencodings提供的編碼列表嘗試,如果沒有找到合適的編碼,就用latin-1(ASCII)編碼打開
文件編碼轉換
多方法:
iconv 提供標準的程序和API來進行編碼轉換;
convert_encoding.py 基於Python的文本文件轉換工具;
decodeh.py 提供演算法和模塊來談測字元的編碼;
linux下文件編碼轉換:
方法一:
在Vim中直接進行轉換文件編碼,比如將一個文件轉換成utf-8格式
:set fileencoding=utf-8
或者
11)設置文件集合,即要對哪些文件進行操作,可以使用通配符,比如我通常是對 C/C++ 源程序進行編碼轉換
:args *.h *.cpp
2)給出要在每個文件上執行的命令,這里是轉換編碼:
:argdo set fenc=utf-8 | update
方法二:
iconv 轉換
5.案例:
假如說我們將windows下的一個UTF-8的文件傳到linux環境下,linux環境下的系統編碼是GB18030,我們cat的時候就會出現亂碼,這個時候就應該想到轉碼了,下面我們來進行試驗:
我們將windows下一個名為UTF-8.sh的文件傳到linux系統中,其中UTF-8.sh的內容如下:
我是中文編碼UTF-8模式~
而linux系統的系統語言設置為:
[root@sor-sys zy]# cat /etc/sysconfig/i18n
LANG=zh_CN.GB18030
SYSFONT="latarcyrheb-sun16"
這個時候查看一下文件的內容及編碼:
[root@sor-sys zy]# file UTF-8.sh
UTF-8.sh: UTF-8 Unicode text, with no line terminators
[root@sor-sys zy]# cat UTF-8.sh
鍩挎垜鏄?腑鏂囩紪鐮乁TF-8妯″紡~[root@sor-sys zy]#
[root@sor-sys zy]#
這個時候我們就需要轉換編碼了,記得使用iconv
[root@sor-sys zy]# iconv -f UTF-8 -t GB18030 UTF-8.sh -o GB18030.sh
[root@sor-sys zy]# cat GB18030.sh
??我是中文編碼UTF-8模式~[root@sor-sys zy]#
[root@sor-sys zy]# file GB18030.sh
GB18030.sh: Non-ISO extended-ASCII text, with no line terminators
[root@sor-sys zy]#
convmv就是更改文件名編碼方式的一個工具。
比如
sudo convmv -f gbk -t utf-8 -r –notest /home
就是將/home目錄下原來文件名是gbk編碼方式的全部改為utf-8格式的。這里 -f 後面為原來的編碼方式,-t 後面是要更改為的編碼方式, -r 表示這個目錄下面的所有文件, –notest 表示馬上執行,而不是僅僅測試而已。另外這命令好像要root才能執行,因此要加上 sudo。
『貳』 linux中文亂碼怎麼辦 Linux中文亂碼解決方法
1、查看是否安裝中文語言包
#locale -a |grep zh_CN
沒有輸出,則未安裝,可先安裝
安裝完成,查看安裝的語言包
#locale -a |grep zh_CN
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
2、修改配置文件
#vim /etc/locale.conf
修改:
LANG=zh_CN(可以一一替換已安裝的中文包嘗試)
重啟電腦生效
『叄』 linux解決中文亂碼問題
有時候linux伺服器突然間查看日誌都是中文亂碼,原因很奇怪,有可能是:
不管什麼原因吧,根本原因還是修改了linux系統本身的編碼,改回來就完了。
修改全部配置文件
末尾增加兩行
讓其生效
如果你的web 伺服器輸出的日誌都是亂碼,那麼最後一步:
『肆』 linux顯示中文亂碼怎麼解決
Linux中文顯示不正常大多是終端字元集設置的不對,因為終端屏幕顯示信息是以設置的語言來顯示的,如果語言是英文或者其他編碼語言設置,顯示中文時就是亂碼。設置終端字元集需要設置LANG這個環境變數,設置方法是在終端輸入LANG=zh_CN.UTF-8,設置好LANG變數後,再在終端上用ls命令查看一下帶有中文的文件名應該就有效果了。
如果經過上面的設置後,用ls命令可以正常列出中文文件名了,那就最好將LANG=zh_CN.UTF-8這一行添加到~/.bashrc這個配置文件中,然後執行命令:source
~/.bashrc,使配置文件的設置馬上生效,這樣終端就被完美的設置成UTF-8中文編碼了。
『伍』 linux中文文件名亂碼怎麼解決
Linux文件名、文件內容亂碼,主要原因是windows上的中文編碼默認是GBK,而Linux默認中文編碼為UTF-8,由於編碼不一致,所以導致亂碼問題。
為了解決這個亂碼,需要對文件進行轉碼,具體如下:
1、前提保證已安裝了convmv;
2、具體convmv的用法:
Convmv –f 源編碼 –t 新編碼 [選項] 文件名
一般常用參數:
-r 遞歸處理子目錄
--notest 真正進行操作,默認情況下是不對文件進行真實操作的,只是一個預覽
--list 顯示所有支持的編碼
--unescap 可以做一個轉義
3、比如我們有一個utf8的文件名,要求轉換成gbk編碼,命令如下:
Convmv –f utf-8 –t gbk –notest 文件名
也可以使用linux下最好用的編碼轉換工具iconv來進行轉碼操作。
例子:將GBK編碼的文件轉換成UTF-8
iconv -f GBK -t UTF-8 gbkfile.txt > utf8file.txt
『陸』 linux文件名中文亂碼怎麼辦
方法一: 修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030
該文件在用戶目錄下,對於其他用戶,也必須相應修改該文件。
使用該方法時putty能顯示中文,但桌面系統是英文,而且所有的網頁中文顯示還是亂碼
方法二:
修改/etc/sysconfig/i18n文件
#LANG="en_US.UTF-8"
#SUPPORTED="en_US.UTF-8:en_US:en"
#SYSFONT="latarcyrheb-sun16"
修改為:
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"
『柒』 如何解決 linux 的亂碼問題
出現這種情況的原因為兩種操作系統的中文壓縮方式不同,在windows環境中中文壓縮一般為gbk,而在linux環境中為utf8,這就導致了在windows下能正常顯示
txt文件在linux環境下打開呈現了亂碼狀態。
解決方法:在linux用iconv命令,輸入命令如下
iconv
-f
gbk
-t
utf8
file.pdf
>
file.pdf.utf8
此時會重生一file.utf8文件,打開之後就能正常顯示中文
linux系統下修改語言配置方法有:
法一:修改/etc/profile文件,增加export
LANG=zh_CN.GB18030
法二:修改/etc/sysconfig/i18n文件,將
#LANG="en_US.UTF-8"
#SUPPORTED="en_US.UTF-8:en_US:en"
#SYSFONT="latarcyrheb-sun16"
改為
LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030"
SYSFONT="latarcyrheb-sun16"
/etc/profile:
為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.
/etc/sysconfig/i18n
這里存放的是系統的區域語言設置
LANG
表明你當前系統的語言環境變數設置
,這里是
zh_CN.GB18030
SUPPORTED
表明系統預置了那些語言支持
,不在項目中的語言不能正常顯示
SYSFONT
定義控制台終端字體,你文本登錄的時候顯示的字體是
latarcyrheb-sun16
I18N
是
internationalization
的縮寫形式,意即在
i
和
n
之間有
18
個字母,本意是指軟體的「國際化」.I18N支持多種語言,不過同一時間只能是英文和一種選定的語言,例如英文+中文、英文+德文、英文+韓文等等;
如果在SCRT上操作時中文亂碼,可依次點擊options--session
options--appearance,選擇character
encoding為UTF-8
『捌』 linux 打開的中文亂碼怎麼解決
在linux上一般使用utf8編碼。
如果打開文件是亂碼,要設置utf8編碼,看看自己用的是什麼編輯器。
如果是vim則使用
set encoding=utf8即可
如果是gedit,則重新另存一下,在存儲窗口 設置為utf8編碼 ,在打開即可。
『玖』 linux命令vi文件亂碼
Xshell 是一個強大的安全終端模擬軟體,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 協議。Xshell 通過互聯網到遠程主機的安全連接以及它創新性的設計和特色幫助用戶在復雜的網路環境中享受他們的工作。
作為一個linux/unix下軟體程序員,我特別喜歡用xshell4,由於其簡單快捷的連接配置,易於分組,便於管理,並且可以記住密碼。
1.用vi打開一個文件,輸入漢字,可以看到亂碼。
2.點擊節界面上的地址欄按鍵,打開地址欄
3.單擊選擇出現亂碼的連接,右鍵選擇properties,即屬性,彈出屬性選項欄
4.在選項欄中點擊Terminal,可以看到Encoding為Default Language,Encoding為文字編碼。
5.此時選擇Encoding,把默認的Default Language改為Unicode(UTF-8),點擊OK,重新打開連接,登陸後可以看到中文亂碼解決。