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

风亡小窝 关注

 0.2 2016.09.26 22:43* 字数 244 阅读 5663评论 0喜欢 2

在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中查看文件编码和文件编码转换

风亡小窝 关注

 0.2 2016.09.26 22:43* 字数 244 阅读 5663评论 0喜欢 2

在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 ‘{}‘ \;

在Vim中查看文件编码和文件编码转换的更多相关文章

  1. VIM中保存编辑的只读文件

    如何在VIM中保存编辑的只读文件 你是否会和我一样经常碰到这样的情景:在VIM中编辑了一个系统配置文件,当需要保存时才发现当前的用户对该文件没有写入的权限.如果已 经做了很多修改,放弃保存的确很懊恼, ...

  2. VIM 中 查看{}是否闭合,按%跳转到下个闭合

    VIM 中 查看{}是否闭合,按%跳转到下个闭合

  3. 在Vim中查看文件编码

    :set fileencoding 即可显示文件编码格式. 如果你只是想查看其它编码格式的文件或者想解决 用Vim查看文件乱码的问题,那么在 ~/.vimrc 文件中添加以下内容: set encod ...

  4. 浏览器中查看HTTP的头部文件

    本文以chrome浏览器为例,来讲解下在浏览器中,如何查看http的头部文件. 1.打开chrome浏览器,输入地址,如下图所示. 2.鼠标右击,在右键菜单中选择[检查],如下图所示. 3.选择“Ne ...

  5. 如何在VIM中保存编辑的只读文件

    我们经常碰到这样的情景:在VIM中编辑了一个系统配置文件,当需要保存时才发现当前的用户对该文件没有写入的权限, 这时候怎么办呢? 当需要保存时,输入以下的命令: :w !sudo tee %

  6. Keil中查看.c和.h文件的路径

    方法一: 选择任意一个文件,然后点击右键,选择"Option for File xxx"即可查看该文件的路径. 方法二: 单击任意一个文件,然后点击右键,选择"Open ...

  7. vim中如何引用自定义模板文件

    我们在使用vim新建文件时可以引用自定义模板,来避免重复的数据格式处理花费太多时间. 实现方法很简单,只需要2步即可:1. 在.vim/template目录放入自己的模板文件(如shellconfig ...

  8. windows,cmd中查看当前目录下的文件及文件夹

    需求描述: 在使用cmd的过程中,有的时候需要查看当前目录下有哪些文件或者文件夹,类似linux下的ls命令 操作过程: 1.通过dir命令查看当前目录下有哪些的文件及文件夹 备注:通过dir命令,就 ...

  9. Confluence 6 在一个空间中查看所有附加的文件

    有下面 2 种方法可以让你查看空间的所有附件.你可以: 使用 Space Attachments Macro 来在一个页面中显示列表文件. 进入空间后,然后从边栏的底部选择 空间工具(Space to ...

随机推荐

  1. 第十届蓝桥杯大赛软件类省赛C/C++研究生组 试题I:灵能传输

    在游戏<星际争霸 II>中,高阶圣堂武士作为星灵的重要 AOE 单位,在游戏的中后期发挥着重要的作用,其技能"灵能风暴"可以消耗大量的灵能对一片区域内的敌军造成毁灭性的 ...

  2. OO电梯系列优化分享

    目录 前言 HW5 HW6 第二次作业uml协作图 HW7 第三次作业uml协作图 前言 本单元作业在优化方面确实有一些想法值得分享,故单开一篇博客分享一下三次作业的优化以及架构. 三次作业的共同之处 ...

  3. No_leak(ret2ROP + 低字节改写到syscall)

    No_leak 有这种题,题目很短小,只有一个read函数,没有输出函数,这样的题怎么解呢?当然首先想到的是ret2dl,但是那个有点儿复杂.下面我来介绍一种简单的解法. 代码如下: //gcc 1. ...

  4. BLE链路层状态机初探

    状态机 BLE链路层把所有的功能放到五种不同的状态中,在不同的状态分别执行不同的功能. 一般来说,BLE设备大致有这么几种状态:空闲,广播,扫描,发起连接和连接成功. 广播和扫描是相对应的,一个设备广 ...

  5. 我与Git的那些破事(下)--分支模型

    在上篇文章中,我提到了Git的基本概念和一些本人实际项目中的总结.然而,最近读了Vincent Driessen写的一篇文章,觉得他总结的太好了,站在他肩膀上忍不住将自己的理解分享出来.Vincent ...

  6. 1090 Highest Price in Supply Chain

    A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...

  7. Thinkphp5 -项目前序安装Composer命令工具具体步骤

    一.Composer 进入官网, 选择download 往下拉,选择最新版本composer.phar下载: 二.创建composer.bat,内容为: @ECHO OFF php "%~d ...

  8. hdu4287 水题

    题意:          水题,就是给你一些单词,和一些按键记录,问打出下面的那些单词,每一个按键记录一共按了多少次. 思路:       直接把每个单词的每一位转换成数字,然后再把每个单词转换的数字 ...

  9. 【运维--系统】nacos介绍和安装

    目录: 简介 安装java 安装mysql 安装nacos 附录 简介 Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服 ...

  10. Intel汇编语言程序设计学习-第六章 条件处理-上

    条件处理 本章要点 1.简介 2.布尔和比较指令 3.条件跳转 4.条件循环指令 5.条件结构 6.应用:有限状态机 7.决策伪指令 6.1  简介 本章,读者将看到高级条件分支如何翻译成底层的实现代 ...