VIM查看文件编码 文件编码格式转换 文件名编码转换.

转换文件编码:convmv 和 iconv 在Linux中有两个强大的工具,用于转换文件编码:convmv和iconv。这两个工具可以帮助我们在不同的字符编码之间进行转换,以确保文件能够在不同的系统和应用程序之间正确地显示和处理。iconv是一个功能强大的字符编码转换工具,可以在命令行中使用或在程序中调用。它支持多种字符编码之间的转换,并提供了丰富的选项和参数。convmv是一个命令行工具,用于转换文件和目录的名称编码。它可以自动检测文件的当前编码,并将其转换为指定的目标编码。如有任何疑问,请随时提问。是要转换为的目标编码,是要转换为的目标编码, 阅读详情
如果你需要在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往 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编码(只是文件名编码的转换,文件内容不会发生变化)

vim 编码方式的设置


和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括UCS-2、UTF-8 等流行的 Unicode 编码方式。然而不幸的是,和很多来自 Linux 世界的软件一样,这需要你自己动手设置。 

Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names),它们的意义如下: 

* encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。默认是根据你的locale选择.用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在.vimrc 中改变它的值才有意义。你可以用另外一种编码来编辑和保存文件,如你的vim的encoding为utf-8,所编辑的文件采用cp936编码,vim会自动将读入的文件转成utf-8(vim的能读懂的方式),而当你写入文件时,又会自动转回成cp936(文件的保存编码). 

* fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。 

* fileencodings: Vim自动探测fileencoding的顺序列表, 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。 

* termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。如果vim所在的term与vim编码相同,则无需设置。如其不然,你可以用vim的termencoding选项将自动转换成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 的代码页)。
解决跨编码文件名转换的convmv实用工具 本文还有配套的精品资源,点击获取 简介:本工具针对IT工作中遇到的多语言环境编码问题提供了有效的解决方案。convmv是一个强大的文件名和目录名编码转换工具,可以在不同编码之间无缝转换,保证数据的一致性和兼容性。特别是处理中文字符时,convmv的使用极为重要,支持在UTF-8、GB2312等编码之间自由切换。它还支持递归处理,高效完成大量子目录中的文件和目录编码转换。但使... 阅读详情

相关推荐

RT-Thread Studio与CubeMX联合编程(超级详细)

RT-Thread Studio与CubeMX联合编程 本文章参考以下文章: https://blog.csdn.net/qq_40824852/article/details/122596043 https://zhuanlan.zhihu.com/p/395106066 https://blog.csdn.net/m0_37697335/article/details/108890584 一、简介 经过上次对RT-Thread Studio的初步尝试,发现RT-Thread Studio中存在官方支

zhuzhu的博客 3万+

Linux命令之convmv命令

单个文件编码转换我们可以使用系统自带的命令iconv,命令使用可以参考[Linux命令之iconv命令](https://blog.csdn.net/carefree2005/article/details/123706744)。如果是整个中文文件夹及你们的文件全是乱码怎么办呢?这个时候我们可以使用convmv命令,通过-r参数完成整个目录里文件编码的转换。convmv能帮助我们很容易地对一个文件,一个目录下所有文件进行编码转换,比如gbk转为utf8等。convmv命令除了转换编码还可以转换文件名为大写或

月生的静心苑 6033

linux下查看文件编码及修改编码

查看文件编码在Linux中查看文件编码可以通过以下几种方式:即可显示文件编码格式。如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照 fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。

LiZhen314的博客 1万+

UE5新手必看:3种UI定位方法实战(含蓝图配置截图)

本文为UE5新手详细解析了三种核心UI定位方法:屏幕空间、场景空间和世界空间。通过实战蓝图配置与控件操作,指导开发者如何根据HUD、角色血条、3D物体标记等不同应用场景,正确选择并配置UI的定位方式,以实现清晰的信息传递与沉浸式体验。

weixin_29018815的博客 473

Python编程基础05:运算符与表达式

文章目录一、算术运算符1、分类说明表2、注意事项3、案例演示任务1、计算成绩差与平均成绩课堂练习:编程处理带余除法。任务2、打印购物小票 运算符就是专门用于告诉程序执行特定运算或逻辑操作的符号。表达式是指由常量、变量和运算符组成的一个算式。编写程序对数据进行处理,其实处理就是对数据实施各种各样的运算,搞懂运算符与表达式是我们编写程序的基础性工作,本次讲课笔记通过案例讲解各种运算符的用法以及正确书写Python表达式的注意事项。 一、算术运算符 Python中的算术运算符就是用来处理四则运算的符号,也是

howard2005的专栏 3119

Linux命令:convmv(文件名转码的工具)

convmv编码转换工具详解 有些情况下我们在window下上传到服务器时会出现编码不一致的情况如下: convmv能帮助我们很容易地对一个文件,一个目录下所有文件进行编码转换,比如gbk转为utf8等。 安装 yum install convmv 语法: convmv [options] FILE(S) … DIRECTORY(S) 主要选项: 1、-f ENCODING 指定目前文件名的编码,...

一个小彩笔 1万+

YOLOv8有效改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例

大家好!欢迎阅读本专栏。本专栏涵盖了YOLO8中C2f、主干网络、检测头、注意力机制、Neck等多种结构的创新,同时也包括了 YOLO相关的基础知识以及相关项目。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 3万+

VIM环境:查看文件编码+文件编码格式转换+文件名编码转换.

如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。 一:查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileen

USBdrivers的专栏 1392

HFSS 3D Layout仿真PCB操作说明

本文介绍一种特别适合PCB这种叠层结构的仿真软件,HFSS 3D Layout既有操作的简便性,又有同3D软件仿真所有的精确性,仿真速度上又比3D软件快很多。

sinat_15150363的博客 3938

杰理接入第三方升级协议OTA教程

本教程介绍了使用dual_bank_updata_api.h接口接入第三方协议进行固件升级的方法。主要内容包括:INI配置要求(需启用双备份并强制4K对齐)、7个核心API接口功能说明及参数详解(初始化、空间检查、数据写入、校验等)、标准升级流程步骤(初始化→检查→写入→校验→引导→清理)。特别强调了4K对齐配置的重要性以避免数据丢失,并提供了被动升级流程图。该方案支持用户自定义协议接入,需严格按照流程调用接口完成升级。

qq_42014563的博客 1429

centos VIM查看文件编码 文件编码格式转换 文件名编码转换

如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。 查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileenco

superbfly的专栏 2173

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

VIM查看文件编码 文件编码格式转换 文件名编码转换

如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。 查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileenco

知行天下 666

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

linux文件编码格式

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE

936

Linux下查看文件编码,文件编码格式转换和文件名编码转换

Linux下查看文件编码,文件编码格式转换和文件名编码转换. 如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。 查看文件编码在Linux中查看文件编码可以通过以下几

风之子的专栏 949

Linux下查看文件编码,文件编码格式转换和文件名编码转换.

碰见这个问题,参考这篇文章,存档   涉及到 1.vim 中的显示和转换 :set fileencoding 2.使用iconv转换整个文件 3.使用convmv转换文件名如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在Linux中如何查看文...

老王 251

shell命令 在命令行中可行,但在sh文件中失效的解决办法

大概率是因为文件编码格式问题 可以尝试对sh文件的编码格式进行修改。 在vim中查看文件编码格式: :set fileencoding 在vim中直接修改文件编码格式: :set fileencoding=gbk 或者在命令行修改文件编码格式: iconv -c -f utf8 -t gbk file1 > file2 #或者 iconv -f UTF-8 -t GBK...

luckoovy的博客 2271

在Linux中对文件的编码及对文件进行编码转换操作

参考:https://www.cnblogs.com/mithrilon/archive/2018/06/03/9082449.html http://blog.chinaunix.net/uid-25266990-id-2853835.html 1、如果发现Linux的文件不是utf8格式的文件,首先需要检测文件编码格式,在Centos7安装enca,需要联网的说。 1 [root...

HiterCoder 1730
上一篇: perl的LWP模块简单介绍
下一篇: MySQL中快速复制数据表方法汇总
B_Dogs881221
博客等级 码龄15年 15粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值