linux文件名编码出问题。

linux文件名编码出问题。,第1张

1、文件分区类型的目录结构有自己的编码

2、分区在挂载时分区的驱动很多都有自己的编码转换功能。

3、本地编码和系统输入输出编码也是影响的地方。

4、现在还有这种问题吗?楼主你不会是还在用很古老的系统吧?

你随便转换就会遇到混乱问题,也就是明明是 utf8 的编码,你非要按照 gb 编码转换到 utf8 编码的过程,这样数据肯定转换的会有问题。转换过去后就是错误编码数据,再转换回来肯定会因为数据错误而无法转换,当然这个错误数据有的是可以处理,有的是不可以处理的。因为 gb 系列和 utf 系列都是动态长度的编码,而且都是用的差不多的算法,区别也就是表示的字符不同。所以错误数据有的时候可以处理,有的时候不能处理。

Qomo 默认应该是 utf8 编码环境,文件系统的目录结构挂载后也转换成了 utf8 编码挂载。但并不代表文本文件里面的数据也全都是 utf8 。我记得 Qomo 为了兼容,默认的文本处理编码是 GB 系列 。也就是说,环境编码和文件内容编码是不同的。

而且,GBK 和 GB 2312 和 GB18030 理论上兼容,但其实是需要码表转换的。所以直接 gbk 并不一定行。

再另外,图形界面的终端里面也有显示的编码设置。

无尽的编码问题最好的解决办法是只用 7bit 表示的语言。

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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/6236158.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存