home > OS > windows >

windows压缩文件到linux解压中文文件名乱码_win10 beta uft-8支持

hits:

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支持》,
请注明出处:https://www.zhoulujun.cn/html/os/windows/2013_0221_8223.html