• 在Vim中查看文件编码和文件编码转换


    在Vim中查看文件编码和文件编码转换

    96 
    风亡小窝 
     0.2 2016.09.26 22:43* 字数 244 阅读 5663评论 0

    在Vim中查看文件编码

    :set fileencoding
    即可显示文件编码格式。

    如果你只是想查看其它编码格式的文件或者想解决 用Vim查看文件乱码的问题,那么在
    ~/.vimrc 文件中添加以下内容:
    set encoding=utf-8 fileencodings=utf-8

    这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或 者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适 的编码,就用latin-1(ASCII)编码打开。

    以指定的编码打开某文件

    如打开windows中以ANSI保存的文件
    vim file.txt -c "e ++enc=GB18030"

    文件编码转换

    在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
    :set fileencoding=utf-8

    查看文件格式
    :set fileformat?

    设置文件格式为 unix
    :set fileformat=unix

     

    ######################

     

    在Vim中查看文件编码和文件编码转换

    96 
    风亡小窝 
     0.2 2016.09.26 22:43* 字数 244 阅读 5663评论 0

    在Vim中查看文件编码

    :set fileencoding
    即可显示文件编码格式。

    如果你只是想查看其它编码格式的文件或者想解决 用Vim查看文件乱码的问题,那么在
    ~/.vimrc 文件中添加以下内容:
    set encoding=utf-8 fileencodings=utf-8

    这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或 者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适 的编码,就用latin-1(ASCII)编码打开。

    以指定的编码打开某文件

    如打开windows中以ANSI保存的文件
    vim file.txt -c "e ++enc=GB18030"

    文件编码转换

    在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
    :set fileencoding=utf-8

    查看文件格式
    :set fileformat?

    设置文件格式为 unix
    :set fileformat=unix

     ###########

    linux 文件编码格式转换

    如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在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-8

    2. iconv 转换,iconv的命令格式如下:

    iconv -f encoding -t encoding inputfile

    比如将一个UTF-8 编码的文件转换成GBK编码

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

    Linux对一个3G的文本进行编码转换全过程

    本过程中涉及到的Linux的命令有:split, iconv, cat

    问题:有一个3G的文本a.txt,编码格式为gbk,现在需要对其进行转换成为utf-8。

    难点:iconv的转换是在内存中进行的,因此3G大小的文本,无法进行直接转换。

    思路:先利用split进行文件切分,然后对每一个字文件进行ivonv转换,最后进行cat合并。

    1) ll -h a.txt 查看文件的大小,2.9G

    2) wc -l a.txt 查看文件的行数,9千200万行

    3) split -l 20000000 a.txt chunk 按照每个文件2千万行进行切割,共分成5个文件

    4) 进行转换

    iconv -f gbk -t utf-8 chunka > chunka_utf8 -c

    iconv -f gbk -t utf-8 chunkb > chunkb_utf8 -c

    iconv -f gbk -t utf-8 chunkc > chunkc_utf8 -c

    iconv -f gbk -t utf-8 chunkd > chunkd_utf8 -c

    iconv -f gbk -t utf-8 chunke > chunke_utf8 -c

    5) rm chunka chunkb chunkc chunkd chunke 删除原文件

    6) cat chunk* > a.txt_utf8 进行合并

    至此,工作完成

    二、

    批量文件编码转换

    本操作有风险,请注意操作前备份文件。

    1.将原来所有编码为gb2312的*.java文件转换为编码为utf-8的*.java.new文件

    for i in `find . -name "*.java"`; do iconv -f gb2312 -t utf-8 $i -o $i.new; done

    2.将*.java.new文件的.new扩展名去除

    find . -name "*.new" | sed 's/(.*).new$/mv "&" "1"/' | sh

    三、

    linux下有许多方便的小工具来转换编码,

    文本内容转换   iconv

    文件名转换     convmv

    mp3标签转换    python-mutagen

    四、

    用法: iconv [选项...] [文件...]

    转换给定文件的编码。

    输入/输出格式规范:

    -f, --from-code=名称      原始文本编码

    -t, --to-code=名称         输出编码

    信息:

    -l, --list                     列举所有已知的字符集

    输出控制:

    -c                             从输出中忽略无效的字符

    -o, --output=FILE    输出文件

    -s, --silent               关闭警告

    --verbose            打印进度信息

    -?, --help                 给出该系统求助列表

    --usage               给出简要的用法信息

    -V, --version            打印程序版本号

    五、

    find default -type d -exec mkdir -p utf/{} ;

    find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} ;

    这两行命令将default目录下的文件由GBK编码转换为UTF-8编码,目录结构不变,转码后的文件保存在utf/default目录下。

    六、

    Linux下文件名编码批量转换convmv

    由于FC将字符编码统一成了UTF8,原来在gb18030下建立的ext3分区中的文件和目录,一挂载到FC上就显示成乱码。google遍整个互联网,说对于目录名和文件名,有一个叫convmv的软件可以对其进行自动转换。

    今日下载了convmv,摸索了一套使用方法如下:

    convmv -f code1 -t code2 -r

    code1:分区原来使用的字符集编码。支持gb2312、gbk、big5,不支持gb18030和big5-hkscs。

    code2:预转换到的字符集编码。对于FC,这里填写utf8

    -r 参数:转换子目录。

    dir:要转换的目录,当前目录用./表示。

    回车执行,这个时候convmv会显示执行的结果,但不会真正对文件进行修改。并提示使用--replace参数进行修改。

    七、

    批量转换文件的编码

    for i in `find ./ -name *.htm` ; do echo $i;iconv -f gb18030 -t utf8 $i -o /tmp/iconv.tmp;mv /tmp/iconv.tmp $i; done

    find -name “*.htm“

    -exec iconv -f gb2312 -t utf8 ‘{}‘ -o /tmp/iconv.tmp ;

    -exec mv /tmp/iconv.tmp ‘{}‘ ;

  • 相关阅读:
    上线服务器参数调整
    java类加载过程,了解一下?
    利用jvm监控工具,了解一下?
    Druid 监控,了解一下?
    Linux安装mysql,了解一下?
    七大经典排序算法,了解一下?
    HashMap实现原理,了解一下?
    Linux下安装zookeeper和redis,了解一下?
    Linux下安装JDK和Tomcat,了解一下?
    ORACLE-dmp文件导出导入,了解一下?
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/11320587.html
Copyright © 2020-2023  润新知