100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > linux 中文 文件名乱码 中文文件名乱码问题

linux 中文 文件名乱码 中文文件名乱码问题

时间:2024-02-06 11:17:41

相关推荐

linux 中文 文件名乱码 中文文件名乱码问题

出自Linux Wiki

提示:此文已超过 5 年(1880 天)未更新,如发现内容过时或有误,欢迎改进:)

注意:

本文解决的是文件名或文件夹名的编码问题,要查看转换文件内容的选项,请参考iconv工具。更多与乱码有关的问题,请参阅中文编码与乱码问题分类。

中文文件名乱码产生的原因有二:一是挂载NTFS或FAT文件系统时,编码指定不正确导致乱码(或问号);二是在文件系统中文件名存储的编码不正确,导致乱码。二者分别讨论:

NTFS/FAT上的文件名乱码

如果正在用的Linux系统locale是UTF-8,只需在mount FAT文件系统时加上utf8参数,在mount NTFS文件系统时加上nls=utf8即可,如下例子fstab:

LABEL=WinFAT /media/WIND vfat defaults,utf8,umask=111,dmask=000 0 0

/dev/sda6 /media/WinNTFS ntfs defaults,nls=utf8,umask=0111,dmask=000 0 0

其它情况

有时中文文件名显示为乱码,通常可以通过转换文件名 有时我们需要更改文件名的编码:

在locale为UTF-8的系统中,解压含有中文文件名的zip文件,文件名出现乱码。

将系统Local从GBK迁移到UTF-8

遇到文件名乱码的其它情形

注意:

千万不要在NTFS或FAT文件系统上执行convmv,否则极可能产生意外结果。

convmv简介

convmv存在于常见操作系统的软件仓库中。如果当前没有工具,可以直接安装。

convmv -f 源编码 -t 新编码 [选项] 文件名

常见有用的选项有:

-r递归处理子文件夹--notest真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。--unescape可以做一下转义,比如把%20变成空格,如果你不知道这是在做什么,就不要尝试了。

实例

一般可解决解压zip而产生的中文文件名乱码的步骤:先试着将gbk文件名改为UTF-8:

convmv -f gbk -t utf8 -r MY_DIR

如果确认输出无误:

convmv --notest -f gbk -t utf8 -r MY_DIR

处理zip文件乱码

配合 7z ,可以解决 zip 文件中的中文文件编码问题。

LC_ALL=C 7z x zip文件名.zip

convmv -f gbk -t utf8 -r dir_path

确认无误后:

convmv -f gbk -t utf8 -r dir_path --notest

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。