文件管理 · 2022年7月25日

linux文件名编码转换|Linux中如何查看文件编码及对文件进行编码转换

『壹』 linux文件名编码出问题。

1、文件分区类型的目录结构有自己的编码。2、分区在挂载时分区的驱动很多都有自己的编码转换功能。3、本地编码和系统输入输出编码也是影响的地方。4、现在还有这种问题吗?楼主你不会是还在用很古老的系统吧?你随便转换就会遇到混乱问题,也就是明明是 utf8 的编码,你非要按照 gb 编码转换到 utf8 编码的过程,这样数据肯定转换的会有问题。转换过去后就是错误编码数据,再转换回来肯定会因为数据错误而无法转换,当然这个错误数据有的是可以处理,有的是不可以处理的。因为 gb 系列和 utf 系列都是动态长度的编码,而且都是用的差不多的算法,区别也就是表示的字符不同。所以错误数据有的时候可以处理,有的时候不能处理。Qomo 默认应该是 utf8 编码环境,文件系统的目录结构挂载后也转换成了 utf8 编码挂载。但并不代表文本文件里面的数据也全都是 utf8 。我记得 Qomo 为了兼容,默认的文本处理编码是 GB 系列 。也就是说,环境编码和文件内容编码是不同的。而且,GBK 和 GB 2312 和 GB18030 理论上兼容,但其实是需要码表转换的。所以直接 gbk 并不一定行。再另外,图形界面的终端里面也有显示的编码设置。无尽的编码问题最好的解决办法是只用 7bit 表示的语言。

『贰』 linux转换文件编码格式

在 Vim 中直接进行转换文件编码,比如将一个文件转换成 utf-8格式 :set fileencoding=utf-8;iconv 转换,iconv 的命令格式如下:输入回/输出格式规范:iconv -f, –from-code=名称答 原始文本编码 -t, –to-code=名称 ,比如说将一个 UTF-8 编码的文件转换成 GBK 编码 iconv -f GBK -t UTF-8 file1 -o file2enconv 转换文件编码 比如要将一个 GBK 编码的文件转换成 UTF-8编码,操作如下 enconv -L zh_CN -x UTF-8 filename

『叁』 linux下怎么改变文件的编码格式

1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式:set fileencoding=utf-82. enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下enconv -L zh_CN -x UTF-8 filename3. iconv 转换,iconv的命令格式如下:iconv -f encoding -t encoding inputfile比如将一个UTF-8 编码的文件转换成GBK编码iconv -f GBK -t UTF-8 file1 -o file2 查看文件编码file命令file ip.txt ip.txt: UTF-8 Unicode text, with escape sequences一、利用iconv命令进行编码转换文件内容编码转换 iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。 用法: iconv [选项…] [文件…] 有如下选项可用: 输入/输出格式规范: -f, –from-code=名称 原始文本编码 -t, –to-code=名称 输出编码 信息: -l, –list 列举所有已知的字符集 输出控制: -c 从输出中忽略无效的字符 -o, –output=FILE 输出文件 -s, –silent 关闭警告 –verbose 打印进度信息 -?, –help 给出该系统求助列表 –usage 给出简要的用法信息 -V, –version 打印程序版本号 例子: iconv -f utf-8 -t gb2312 aaa.txt >bbb.txt 这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件。

『肆』 linux下的文件名怎么是乱码的

如果你需要在Linux中操作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.GB18030SYSFONT="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中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:set fileencoding即可显示文件编码格式。如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.vimrc 文件中添加以下内容:set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。文件编码转换1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式:set fileencoding=utf-82. iconv 转换,iconv的命令格式如下:iconv -f encoding -t encoding inputfile比如将一个UTF-8 编码的文件转换成GBK编码iconv -f GBK -t UTF-8 file1 -o file2iconv -f gbk -t utf8 linux常用命令.txt > linux常用命令.txt.utf8文件名编码转换:从Linux 往 windows拷贝文件或者从windows往Linux拷贝文件,有时会出现中文文件名乱码的情况,出现这种问题的原因是因为,windows的文件名 中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致,所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。在Linux中专门提供了一种工具convmv进行文件名编码的转换,可以将文件名从GBK转换成UTF-8编码,或者从UTF-8转换到GBK。 首先看一下你的系统上是否安装了convmv,如果没安装的话用:yum -y install convmv安装。下面看一下convmv的具体用法:convmv -f 源编码 -t 新编码 [选项] 文件名常用参数:-r 递归处理子文件夹–notest 真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。–list 显示所有支持的编码–unescap 可以做一下转义,比如把%20变成空格比如我们有一个utf8编码的文件名,转换成GBK编码,命令如下:convmv -f UTF-8 -t GBK –notest utf8编码的文件名这样转换以后"utf8编码的文件名"会被转换成GBK编码(只是文件名编码的转换,文件内容不会发生变化)

『柒』 如何在 Linux 中将文件编码转换为 UTF-8

简单来说,字符编码是一种可以指示电脑来将原始的 0 和 1 解释成实际字符的方式,在这些字符编码中,字符都以一串数字来表示。字符编码方案有很多种,比如 ASCII、ANCI、Unicode 等等

『捌』 如何在 Linux 中将文件编码转换为 UTF-8

可以用iconv命令来转换文件的编码,格式: iconv -f 原本的编码格式 -t 要转换成的编码 文件名 -o 新文件名 例如: iconv -f gb2312 -t utf8 mytext.txt -o utf8.txt

『玖』 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-8iconv -f GBK -t UTF-8 gbkfile.txt > utf8file.txt批量转换方法:1. 生成相应的目录结构: find origin -type d -exec mkdir out{} \; 根据origin下的目录结构,生成相应的目录结构到outorigin下;2. 转换匹配的文件编码: find origin -type f -name '*.java' -exec iconv -f GBK -t UTF-8 {} -o out{} \; 将origin目录下后缀为java的文件编码从GBK转换成UTF-8,并保存在outorigin目录下。注意,先确定源文件的编码格式,选择相应的编码(这里是GBK的),否则转换出来的还是乱码。3. 还可以继续转换其它匹配的文件:如:转换HTML文件 find origin -type f -name '*.html' -exec iconv -f GBK -t UTF-8 {} -o out{} \;