首页 > 编程知识 正文

linux如何查看文件格式,linux有几种文件类型

时间:2023-05-04 06:14:03 阅读:170844 作者:1366

如果需要在中操作windows下的文件,则可能会频繁出现文件编码转换问题。 Windows上的缺省文件格式为gbk(GB2312 ),但Linux通常为UTF-8。 本节介绍如何在Linux上显示文件编码,以及如何对文件进行编码转换。

查看文件编码

要在Linux上查看文件编码,请执行以下操作:

1 .在中可以直接看到文件代码

:设置文件编码

显示文件的编码格式。

如果要查看其他编码文件,或者希望解决Vim中文件乱码的问题,请执行以下操作

在~/.vimrc文件中添加以下内容:

set encoding=utf-8文件encodings=UCS-BOM,utf-8,cp936

这样,vim就可以自动识别使用UTF-8或GBK编码的文件编码。 实际上,请按照文件编码提供的编码列表进行尝试,如果找不到合适的编码,请用Latin-1 ) ascii )编码打开。

文件编码转换

1 .用Vim直接对转换文件进行编码,如将一个文件转换为utf-8格式

:set fileencoding=utf-8

2. iconv转换、iconv的指令格式如下。

iconv-f编码- tencodinginputfile

例如,将UTF-8编码文件转换为GBK编码

iconv -f GBK -t UTF-8 file1 -o file2

文件名转换:

从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可以退出。 例如设为空间

例如,有一个转换为GBK编码的utf8编码文件名。 命令如下所示。

convmv -f UTF-8 -t GBK --notest utf8编码文件名

这样转换会将“用utf8编码的文件名”转换为GBK编码。 (只有文件名编码的转换,文件内容不会改变。 )

vim编码设置

与所有常规文本编辑器一样,Vim可以很好地编辑各种字符编码文件。 这当然包括常用的Unicode编码方法,如UCS-2和UTF-8。 但不幸的是,像许多来自Linux世界的软件一样,它需要自己设置。

Vim有四个与字符编码相关的选项:编码、文件编码、文件编码和终端编码。 有关这些选项的可能值,请参阅Vim联机帮助3:help encoding-names。 这些意思是3360

* encoding: Vim内部使用的字符编码方法。 包括虚拟机缓冲区、菜单文本、消息文本等。 默认值是基于您的locale选择的。 虽然用户手册建议只在. vimrc中更改值,但实际上只在. vimrc中更改值似乎很有意义。 可以用其他代码编辑并保存文件。 例如,如果vim的编码是utf-8,并且您编辑的文件使用cp936编码,则vim会自动将导入的文件转换为utf-8。 gddjm写入文件时,会自动返回cp936。

*当前在文件编码: vim中编辑的文件的字符编码。 用Vim保存文件时,无论是否是新文件,文件也会以这种字符编码方式保存。

*文件编码: vim自动检测文件编码序列列表,启动时根据列出的字符编码逐个检测即将打开的文件的字符编码,将文件编码因此,希望将Unicode编码方案放在该列表的开头,并将拉丁语编码方案latin1放在最后。

*运行* termencoding: Vim的终端或Windows控制台窗口的字符编码。 如果vim与vim代码位于同一term中,则不需要进行设置。 否则,可以使用vim的ter

mencoding选项将自动转换成term的编码.这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。

好了,解释完了这一堆容易让新手犯糊涂的参数,我们来看看 Vim 的多字符编码方式支持是如何工作的。

1. Vim 启动,根据 .vimrc 中设置的 encoding 的值来设置 buffer、菜单文本、消息文的字符编码方式。

2. 读取需要编辑的文件,根据 fileencodings 中列出的字符编码方式逐一探测该文件编码方式。并设置 fileencoding 为探测到的,看起来是正确的 (注1) 字符编码方式。

3. 对比 fileencoding 和 encoding 的值,若不同则调用 iconv 将文件内容转换为encoding 所描述的字符编码方式,并且把转换后的内容放到为此文件开辟的 buffer 里,此时我们就可以开始编辑这个文件了。注意,完成这一步动作需要调用外部的 iconv.dll(注2),你需要保证这个文件存在于 $VIMRUNTIME 或者其他列在 PATH 环境变量中的目录里。

4. 编辑完成后保存文件时,再次对比 fileencoding 和 encoding 的值。若不同,再次调用 iconv 将即将保存的 buffer 中的文本转换为 fileencoding 所描述的字符编码方式,并保存到指定的文件中。同样,这需要调用 iconv.dll由于 Unicode 能够包含几乎所有的语言的字符,而且 Unicode 的 UTF-8 编码方式又是非常具有性价比的编码方式 (空间消耗比 UCS-2 小),因此建议 encoding 的值设置为utf-8。这么做的另一个理由是 encoding 设置为 utf-8 时,Vim 自动探测文件的编码方式会更准确 (或许这个理由才是主要的 ;)。我们在中文 Windows 里编辑的文件,为了兼顾与其他软件的兼容性,文件编码还是设置为 GB2312/GBK 比较合适,因此 fileencoding 建议设置为 chinese (chinese 是个别名,在 Unix 里表示 gb2312,在 Windows 里表示cp936,也就是 GBK 的代码页)。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。