當前位置:首頁 » 文件管理 » linux解壓中文亂碼

linux解壓中文亂碼

發布時間: 2022-10-05 19:30:46

linux中文顯示亂碼

linux輸入中文之後卻顯示為亂碼,該怎麼解決這種情況?我們一起來了解一下吧。
一、登錄linux系統打開操作終端之後,輸入echo$LANG可以查看當前使用的系統語言

在終端輸入locale命令查看是否有中文語言包,如有zhcn表示已經安裝了中文語言

如果沒有中文語言可以通過網上下載安裝中文語言包yumgroupinstallchinese-support。

二、臨時更換語言
如果只是臨時更換linux系統的語言環境,可以通過輸入設置LANG=語言名稱,如中文是
Zn_CN.UTF-8

三、打開設置把終端的編碼選擇中文,或者UTF8即可

linux中文顯示亂碼就介紹到這里了,希望對大家有所幫助。
本文章基於ThinkpadE15品牌、centos7系統撰寫的。

② Linux 下 zip 文件解壓亂碼如何解決

1、這是zip格式的缺陷,zip文件格式中沒有欄位標志出文件名的編碼格式。Windows下生成的zip文件中的編碼是GBK/GB2312等,而linux下的默認編碼格式為UTF-8,所以才會出現亂碼。


2、解決方法

1、使用unzip解壓的時候,指定字元集(需要unzip支持,有些unzip命令不支持大O選項,自己可以安裝較新的unzip版本):

[email protected]:~/$unzip-OCP936test.zip

2、藉助於p7zip和convmv:

a、在Fedora下的命令是

su-c'yuminstallp7zipconvmv'

b、在ubuntu下的安裝命令是

sudoapt-getinstallp7zipconvmv

安裝完之後,就可以用7za和convmv兩個命令完成解壓縮任務。

LANG=C7zaxyour-zip-file.zip
convmv-fGBK-tutf8--notest-r.

說明:

1)、第一條命令用於解壓縮,而LANG=C表示以US-ASCII這樣的編碼輸出文件名,如果沒有這個語言設置,它同樣會輸出亂碼,只不過是UTF8格式的亂碼(convmv會忽略這樣的亂碼)。

2)、第二條命令是將GBK編碼的文件名轉化為UTF8編碼,-r表示遞歸訪問目錄,即對當前目錄中所有文件進行轉換。



③ Linux中unzip解壓時中文亂碼如何解決

更改源碼解決亂碼
調試發現問題出現在MultiByteToWideChar方法里,
如 MultiByteToWideChar(CP_ACP,0,fn,-1,tfn,MAX_PATH); 到這里時fn中的name屬性值還是正常的,在這個方法內部執行完tfn就亂了。
解決方法:
打開unzip.cpp源文件,找到函數
ZRESULT TUnzip::Get(int index,ZIPENTRY *ze)
{ // ......
// ......} 12345

這個函數里有
#ifdef UNICODE
MultiByteToWideChar(CP_UTF8,0,fn,-1,tfn,MAX_PATH);#else
strcpy(tfn,fn);#endif12345

把 CP_UTF8 改為CP_ACP, ( CP_ACP 指示要使用當前設置的 API 默認 Windows ANSI 代碼頁)
重新編譯
這樣就解決了解壓中文文件名稱亂碼的問題
編譯時解決源碼問題(無需更改源碼)
上面的情況,我們我觀察到unzip源代碼這段開始的地方有判斷
#ifndef Ext_ASCII_TO_Native 1

這樣問題似乎更簡單了,不用改源代碼,只需在make時定義 Ext_ASCII_TO_Native 即可,這樣 Ext_ASCII_TO_Native 實際為一個空的宏,不進行任何轉換操作。
比如,使用下面的方法編譯
make -DExt_ASCII_TO_Native 1

或者在bash執行下面兩行
export LOCAL_UNZIP=-DExt_ASCII_TO_Native
make12

unzip解壓縮含中文文件名zip包是出現亂碼的問題解決!
如果您的系統已經安裝了unzip
方法一 unzip行命令解壓,指定字元集
通過unzip行命令解壓,指定字元集
unzip -O CP936 xxx.zip (用GBK, GB18030也可以)1

方法二 在環境變數中,指定unzip參數
在環境變數中,指定unzip參數,總是以指定的字元集顯示和解壓文件
/etc/environment中加入2行
UNZIP=」-O CP936″
ZIPINFO=」-O CP936″12

方法三 利用pyton來處理
復制以下內容(python)保存未myuzip.py文件腳本,並修改運行許可權為可運行(chmod +x uzip)
#!/usr/bin/env python# -*- coding: utf-8 -*-# uzip.pyimport osimport sysimport zipfileprint "Processing File " + sys.argv[1]

file=zipfile.ZipFile(sys.argv[1],"r");for name in file.namelist():
utf8name=name.decode('gbk') print "Extracting " + utf8name
pathname = os.path.dirname(utf8name) if not os.path.exists(pathname) and pathname!= "":
os.makedirs(pathname)
data = file.read(name) if not os.path.exists(utf8name):
fo = open(utf8name, "w")
fo.write(data)
fo.close
file.close()

這樣以後我們解壓縮時只需要運行此文件即可
./myuzip.py xxxx.zip

④ 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系統的系統語言設置為:

[[email protected] zy]# cat /etc/sysconfig/i18n
LANG=zh_CN.GB18030
SYSFONT="latarcyrheb-sun16"
這個時候查看一下文件的內容及編碼:

[[email protected] zy]# file UTF-8.sh
UTF-8.sh: UTF-8 Unicode text, with no line terminators
[[email protected] zy]# cat UTF-8.sh
鍩挎垜鏄?腑鏂囩紪鐮乁TF-8妯″紡~[[email protected] zy]#
[[email protected] zy]#

這個時候我們就需要轉換編碼了,記得使用iconv

[[email protected] zy]# iconv -f UTF-8 -t GB18030 UTF-8.sh -o GB18030.sh
[[email protected] zy]# cat GB18030.sh
??我是中文編碼UTF-8模式~[[email protected] zy]#
[[email protected] zy]# file GB18030.sh
GB18030.sh: Non-ISO extended-ASCII text, with no line terminators
[[email protected] zy]#

convmv就是更改文件名編碼方式的一個工具。
比如

sudo convmv -f gbk -t utf-8 -r –notest /home
就是將/home目錄下原來文件名是gbk編碼方式的全部改為utf-8格式的。這里 -f 後面為原來的編碼方式,-t 後面是要更改為的編碼方式, -r 表示這個目錄下面的所有文件, –notest 表示馬上執行,而不是僅僅測試而已。另外這命令好像要root才能執行,因此要加上 sudo。

⑤ linux解決中文亂碼問題

有時候linux伺服器突然間查看日誌都是中文亂碼,原因很奇怪,有可能是:

不管什麼原因吧,根本原因還是修改了linux系統本身的編碼,改回來就完了。

修改全部配置文件

末尾增加兩行

讓其生效

如果你的web 伺服器輸出的日誌都是亂碼,那麼最後一步:

⑥ linux顯示中文亂碼

很多朋友都想知道linux顯示中文亂碼應該怎麼辦?下面就一起來看看吧!
linux顯示中文亂碼
一、登陸linux系統打開操作終端之後,輸入echo$LANG可以查看當前使用的系統語言

在終端輸入locale命令查看是否有中文語言包,如有zhcn表示已經安裝了中文語言

如果沒有中文語言可以通過網上下載安裝中文語言包yumgroupinstallchinese-support。

二、臨時更換語言
如果只是臨時更換linux系統的語言環境,可以通過輸入設置LANG=語言名稱,如中文是
Zn_CN.UTF-8

三、打開設置把終端的編碼選擇中文,或者UTF8即可

本文章基於ThinkpadE15品牌、centos7系統撰寫的。

⑦ 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中文亂碼怎麼辦 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(可以一一替換已安裝的中文包嘗試)

重啟電腦生效

熱點內容
電腦無法安裝ug伺服器 發布:2022-12-09 15:08:52 瀏覽:726
批處理訪問共享 發布:2022-12-09 15:08:49 瀏覽:532
編譯ONLYOFFIXE 發布:2022-12-09 15:06:42 瀏覽:17
cftp刪除文件 發布:2022-12-09 15:05:05 瀏覽:439
c語言時間減 發布:2022-12-09 15:05:04 瀏覽:94
電腦時間設置時rpc伺服器不可用 發布:2022-12-09 15:04:51 瀏覽:518
資料庫的答案 發布:2022-12-09 15:04:07 瀏覽:75
推薦我的世界可以建立幫派的伺服器 發布:2022-12-09 15:00:54 瀏覽:962
開源語言編譯 發布:2022-12-09 14:59:05 瀏覽:886
方舟編譯器開源小米在用嗎 發布:2022-12-09 14:58:56 瀏覽:800