home > OS > windows >

windows壓縮文件到linux解壓中文文件名亂碼_win10 beta uft-8支持

author:zhoulujun date:2013-02-21 17:36:00

windows上文件名與linux mac unix編碼不同,windows上讀取文件名是讀取gbk編碼,造成在其他平臺解壓亂碼。解決中文文件名亂碼有三種辦法:設置linux為gbk編碼 解壓指定文件名編碼格式轉碼 convmv轉換文件名編碼 windows中文設置為utf-8

windows文件名壓縮到mac或者linux文件上解壓,中文文件名亂碼。無法打開。同樣mac上的中文文件名通過壓縮后到windows中文名系統上,解壓還是亂碼。現在win10中文終于支持unicode utf-8編碼,媽媽再也不用擔心windows上與mac linux 文件互相解壓與壓縮造成中文文件名亂碼

設置問win10為utf-8編碼

原因是unix使用的Unicode編碼,linux、mac系統是Unix系統的繼承者。而windows起源于Dos系統,自成一家,一家獨大。windows中文系統編碼是GBK,所謂的語言擴展包,唐俊的自傳里面,把這個功能吹上天。

微信截圖_20191121175523.png

現在win10也支持,區域語言設置中文的時候,勾選上utf-8功能

解壓時候轉碼文件名

第二是在linux 或者mac上,解壓時候,轉碼

$ su -c 'yum install 7zip convmv'
# ubuntu
$ sudo apt-get install 7zip convmv
# 使用7z解壓縮 
$ 7za x your-zip-file.zip 
# 遞歸轉碼,從GBK轉為UTF-8 
$ convmv -f GBK -t utf8 --notest -r .

mac上面有相關的轉碼解壓工具。

設置linux為gbk編碼

修改服務器端語言環境,將i18n里的信息修改成以下代碼

 /etc/sysconfig/i18n

    LANG="zh_CN.GB18030" 

    LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN" 

    SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en" 

    SYSFONT="lat0-sun16"

convmv轉換文件名編碼

檢查是否安裝convmv

rpm -qa |grep convmv

轉換文件名編碼

convmv的使用方法:

convmv -f 源編碼 -t 新編碼 [選項] 文件名

convmv -f gbk -t utf8 -r --notest ./test

轉換以后“GBK編碼的文件名”會被轉換成UTF-8編碼(只是文件名編碼的轉換,文件內容不會發生變化)。

convmv主要選項:

  1. -f ENCODING

    指定目前文件名的編碼,如-f gbk

  2. -t ENCODING

    指定將要轉換成的編碼,如-f utf-8

  3. -r

    遞歸轉換目錄下所有文件名

  4. -list

    列出所有支持的編碼

  5. --notest

    默認是只打印轉換后的效果,加這個選項才真正執行轉換操作。

convmv常用參數:

  • -r 遞歸處理子文件夾

  • –notest 真正進行操作,默認情況下是不對文件進行真實操作

  • –list 顯示所有支持的編碼

  • –unescap 可以做一下轉義,比如把%20變成空格

  • -i 交互模式(詢問每一個轉換,防止誤操作)

  • --nosmart 如果已經是utf-8 忽略

轉換文件編碼

文件內容亂碼,轉換gbk為utf-8

iconv -f gbk -t utf8

win10出來也好幾年了,該用win10了,顯示中文,設置win10位utf-8編碼模式


轉載本站文章《windows壓縮文件到linux解壓中文文件名亂碼_win10 beta uft-8支持》,
請注明出處:http://www.qsexmk.tw/html/os/windows/2013_0221_8223.html