linux文件编码和输出编码一致,在Linux下查看文件字符编码和转换编码

5fbb84684c5591f7166cf4c4873221c5.png

在Linux下查看文件字符编码和转换代码如果需要在Linux下的Windows下操作文件,则可能经常遇到文件代码转换问题. Windows中的默认文件格式为GBK(gb2312),而Linux通常为UTF-8. 下面介绍如何在Linux中查看文件编码以及如何对文件执行编码转换. 1.查看文件编码: 您可以通过以下方式在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)编码.

150420-5ef9927403412.png

2. enca(如果您的系统中未安装此命令文件转换编码,则可以使用sudo yum install -y enca进行安装)查看编码为$ enca filenamefilename的文件: 通用转换格式8位; UTF-8 CRLF行终止符需要解释一下是的,enca不能很好地识别某些GBK编码的文件,它将在识别期间出现: 无法识别的编码2.文件编码转换1.直接在Vim中转换文件编码,例如将文件转换为utf-8格式时: set fileencoding = utf-8 2. Iconv转换时,iconv的命令格式如下: 输入/输出格式规范: -f,--from-code =名称原始文本编码- t,--to-code =名称输出编码信息: -L,--list列出所有已知字符集. 输出控制: -c忽略输出中的无效字符-o,--output = FILE输出文件Svn8.Com -s,--silent关闭警告--verbose打印进度信息-?、 --help提供系统帮助列表-用法提供简要的用法信息-V,--version打印程序版本号示例: iconv -f utf-8 -t gb2312 aaa.txt> bbb .txt该命令读取aaa.txt文件,将utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件.

6f1cddac01e824d19ba7afc5519f505f.png

iconv -f编码-t编码输入文件例如,将UTF-8编码的文件转换为GBK编码iconv -f GBK -t UTF-8的文件1 -o file2 3. Enconv将文件编码转换为例如GBK编码的文件将文件转换为UTF-8编码,操作如下: enconv -L zh_CN -x UTF-8文件名3.文件名编码转换: 有时将文件从Linux复制到Windows或将文件从Windows复制到Linux,有时中文文件名会出现乱码实际上,此问题的原因是,默认情况下,Windows中文件名的中文编码为GBK文件转换编码,而Linux中的默认文件名编码为UTF8. 由于编码不一致,导致出现文件名乱码的问题. 解决此问题需要对文件名进行代码转换. 在Linux中,ANDGate提供了一个convmv工具来转换文件名编码,该工具可以将文件名从GBK转换为UTF-8编码,或从UTF-8转换为GBK. 首先,检查您的系统上是否安装了convmv. 如果没有,请使用: yum -y install convmv进行安装.

7cb1d5cc2f5f085dce52807ae57af65b.png

让我们看一下convmv的具体用法: 例如,convmv -f GBK -t UTF-8 * .mp3但是此命令不会直接转换,您可以看到转换前后的比较. 如果要进行直接转换,请添加参数--notest convmv -f GBK -t UTF-8 --notest * .mp3 -f参数指示转换之前的编码,-t是转换之后的编码. 毫无疑问. 否则,可能会出现乱码. 还有一个参数很有用. 也就是说,-r表示以递归方式转换当前目录中的所有子目录. convmv -f源编码-t新编码[选项]文件名的常用参数: -r递归处理子文件夹-注意实际操作,请注意,在默认情况下,不执行文件的实际操作,而仅执行测试. -List显示所有受支持的编码-unescap可以进行一些转义,例如将%20转换为空格. 例如,我们有一个utf8编码的文件名,转换为GBK编码,命令如下: convmv -f UTF-8 -t GBK- Notest utf8编码的文件名将在转换为“ utf8”后转换为GBK编码-encoded file name”(只是文件名编码转换,文件内容不会改变)第四,vim编码的设置和所有流行的文本编辑像浏览器一样,Vim可以编辑具有各种字符编码的文件,包括流行的Unicode编码方法,例如UCS-2和UTF-8.

150329-5ef9924105cf9.jpeg

但是,不幸的是,就像Linux世界中的许多软件一样,这需要您自行设置. Vim具有四个与字符编码,编码,文件编码,文件编码,术语编码有关的选项(有关这些选项的可能值,请参考Vim的帮助: 帮助编码名称). 它们的含义如下: *编码: 由Vim内部使用字符编码方法,包括Vim的缓冲区(buffer),菜单文本,消息文本等. 默认值是根据您的语言环境选择. 用户手册建议您仅在.vimrc中更改其值. 实际上,似乎只有在.vimrc中更改其值才有意义. 您可以使用其他编码来编辑和保存文件. 例如,您的vim编码为utf-8,而编辑后的文件使用cp936编码. Vim会自动将读取的文件转换为utf-8(vim可以读取“理解方式”),并且在写入文件时,它将自动切换回cp936(文件的保存编码). * fileencoding: 当前在Vim中编辑的文件的字符编码. 对于此字符编码方法,Vim还将在保存文件时保存该文件(无论它是否为新文件).

*文件编码: Vim自动检测文件编码的顺序列表. 启动时,它将根据文件中列出的字符编码逐个检测要打开的文件的字符编码,并将fileencoding设置为最终检测到的字符编码. 因此,最好将Unicode编码放在此列表的顶部,并将拉丁编码latin1放在最后. * termencoding: Vim正在使用的终端(或Windows的Console窗口)的字符编码. 如果vim的术语与vim代码相同,则无需进行设置. 如果没有,您可以使用vim的termencoding选项自动转换为术语编码. 对于我们在Windows下常用的GUI模式gVim,此选项无效,但对于在控制台模式下的Vim,它是Windows控制台的代码页. 通常,我们不需要更改它. V. Vim的多字符编码工作方法1.启动Vim,并根据.vimrc中设置的编码值设置缓冲区,菜单文本和消息文本的字符编码方法. 2.读取要编辑的文件,并根据文件编码中列出的字符编码一一检测文件的编码.

并设置要检测的文件编码,这似乎是正确的(注1)字符编码. 3.比较文件编码和编码的值. 如果它们不同,请调用iconv将文件的内容转换为编码所描述的字符编码,并且不要将转换后的内容放入为文件创建的缓冲区中,那么我们就可以开始编辑该文件了. 请注意,要完成此步骤,您需要调用外部iconv.dll(注2). 您需要确保该文件存在于$ VIMRUNTIME或PATH环境变量中列出的其他目录中. 4.编辑后保存文件时,再次比较文件编码和编码的值. 如果不同,请再次调用iconv将要保存的缓冲区中的文本转换为fileencoding描述的字符编码,然后将其保存到指定的文件. 同样,这需要调用iconv.dll. 因为Unicode几乎可以包含所有语言字符,并且Unicode的UTF-8编码方法是一种非常经济高效的编码方法(空间消耗小于UCS-2),所以建议将编码设置为utf-8. 另一个原因是,当编码设置为utf-8时,Vim会自动检测文件的编码方法以使其更准确(也许这是主要原因. 我们在中文Windows中编辑的文件与其他文件不兼容. 为了兼容,将文件编码设置为GB2312 / GBK更合适,因此建议将文件编码设置为中文(中文是别名,Unix表示gb2312,Windows表示cp936,这是GBK的代码页)

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-288968-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值