A. linux編碼問題:1.xshell終端軟體上的編碼和伺服器LANG命令設置的編碼有什麼區別2.vi和less其中一種亂碼
只能說一下個人保持不亂碼的經驗,一要保持xshell的字元集和伺服器控制台的系統語言字元集一致,二vi的vimrc設置里的語言要加入utf8,gbk等常用字元集,三在控制台cat less這些直接列印文件內容的,文件字元集要和控制台字元集一致,這樣就沒有亂碼了
B. linux與xp系統編碼問題,求設置方法
應該不是編碼的問題 雖然你的系統默認是utf-8但是linux是支持gbk編碼的 你上傳的時候用binary方式上傳看看?
C. linux python運行報編碼錯誤
一次重啟伺服器後,supervisor接管的python腳本中的函數 open() 和 print() 都會報下面的編碼錯誤:
UnicodeEncodeError: 'ascii' codec can't encode
使用的是python3,按理說編碼都會默認utf-8,而且本地運行的python腳本並沒有這個問題。
經大佬指點,增加環境變數 export LC_ALL="en_US.UTF-8" 後,再重啟supervisor,問題解決
下面是復制的: https://www.cnblogs.com/badboy200800/p/11215981.html
Locale是一個軟體在運行時的語言環境,。是根據計算機用戶所使用的語言,所在國家或者地區,以及當地的文化傳統所定義的。它包括語言(Language), 地域 (Territory) 和字元集(Codeset)。
一個locale的書寫格式為: 語言[ 地域[.字元集]]。完全的locale表達方式是 [語言[ 地域][.字元集] [@修正值]。例如:
zh_CN.GB2312 => 中文_中華人民共和國+國標2312字元集。
(1)locale把按照所涉及到的文化傳統的各個方面分成12個大類
(2)查看標准字元集列表
常用字元集:en_US.utf8、zh_CN.gb2312、zh_CN.gbk、zh_CN.utf8等
3.Locale的設定
LC_ALL和LANG優先順序的關系:LC_ALL > LC_* >LANG
(1)如果需要一個純中文的系統的話,設定LC_ALL= zh_CN.XXXX即可。或者設定LANG=zh_CN.XXXX也可以,但是LC_ 不要有任何特殊設定才可以(因為LC_ 優先順序高)。
(2)如果需要個性化的環境,例如只想要一個可以輸入中文的環境,而保持菜單、標題,系統信息等等為英文界面,那麼只需要設定LANG=en_US.XXXX,然後 LC_CTYPE=zh_CN.XXXX就可以了。
(3)假如什麼也不做的話,也就是LC_ALL,LANG和LC_*均不指定特定值的話,系統將採用POSIX作為lcoale,也就是C locale。
4.查看與設定字元集實踐
(1)查看當前系統字元集三種方式(LC_ALL、LC_CTYPE和LANG),以查看LANG為例:
(2)更改系統字元集
備註:直接執行上述命令,可以臨時修改系統字元集。如果寫入環境變數可以永久改變字元集。
(3)取消當前系統字元集(設定為空)
備註:直接執行上述命令,可以臨時修改系統字元集。如果寫入環境變數可以永久改變字元集。
D. 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
E. linux伺服器編碼格式與程序不匹配
剛剛遇到了在Windows上編寫的java程序在Linux上運行時的編碼問題。在Windows上用Notepad 或者Eclipse寫的java程序,如果其中有中文字元,在Linux下javac是無法編譯成功的。
Windows的編碼集是GBK編碼,而Linux的則是UTF-8,所以需要使用工具將java源程序的編碼給改變。
可以使用iconv這個工具
命令格式為
iconv -f GBK -t UTF-8 file1 -o file2
登錄後復制
file1是GBK編碼的,file2是UTF-8編碼的。
如果不想保留原來的文件可以將file2的文件名寫為和file1一樣。
然後就可以javac成功編譯了。
F. linux系統,文件是utf-8格式的為什麼會亂碼呢
亂碼的問題有很多可能,第一、linux安裝時是否支持中文;第二、要用命令查一下格式:echo $LANG;第三確認格式是否需要在系統中修改格式類型;第四連接終端(putty,secureCRT)等工具的編碼是否和系統的編碼一致,不致要改為一致就可以了。
G. 文件在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。
H. Linux下編碼問題
你可以試試在IE中的編碼選項設置為中文自動選擇看看。
是不是你的網頁在製作過程中編碼選擇有問題?建議你用dreamweaver編輯,裡面有一個專門的字元編碼選項,也可以轉換為你想要的編碼格式。
I. linux文件名編碼出問題。
1、文件分區類型的目錄結構有自己的編碼。
2、分區在掛載時分區的驅動很多都有自己的編碼轉換功能。
3、本地編碼和系統輸入輸出編碼也是影響的地方。
4、現在還有這種問題嗎?樓主你不會是還在用很古老的系統吧?
你隨便轉換就會遇到混亂問題,也就是明明是 utf8 的編碼,你非要按照 gb 編碼轉換到 utf8 編碼的過程,這樣數據肯定轉換的會有問題。轉換過去後就是錯誤編碼數據,再轉換回來肯定會因為數據錯誤而無法轉換,當然這個錯誤數據有的是可以處理,有的是不可以處理的。因為 gb 系列和 utf 系列都是動態長度的編碼,而且都是用的差不多的演算法,區別也就是表示的字元不同。所以錯誤數據有的時候可以處理,有的時候不能處理。
Qomo 默認應該是 utf8 編碼環境,文件系統的目錄結構掛載後也轉換成了 utf8 編碼掛載。但並不代表文本文件裡面的數據也全都是 utf8 。我記得 Qomo 為了兼容,默認的文本處理編碼是 GB 系列 。也就是說,環境編碼和文件內容編碼是不同的。
而且,GBK 和 GB 2312 和 GB18030 理論上兼容,但其實是需要碼表轉換的。所以直接 gbk 並不一定行。
再另外,圖形界面的終端裡面也有顯示的編碼設置。
無盡的編碼問題最好的解決辦法是只用 7bit 表示的語言。
J. Linux系統終端字體亂碼(非管理員賬戶操作指南)
問題:使用一台Linux系統的機器,終端總是顯示有亂碼,不是中文亂碼,看起來像是英文亂碼,我這強迫症又受不了了
解決方案:
Linux字元編碼默認為UTF-8,如果出現英文亂碼有可能是系統設置的編碼方式為GBK。
設置locale的根本就是設置一組總共12個LC開頭的變數,不包括LANG和LC_ALL。
優先 級:LC_ALL > LC_* > LANG
可以看出原系統設置的為中文字體顯示和運行的語言環境,所有的設置都是使用的 zh_CN.gbk ,因中英文字元編碼方式不同,可能造成英文字元或者空格顯示有亂碼。
5.退出後再次查看locale(再次登錄才生效)
亂碼的字元消失了。locale轉變為: