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)编码打开。
(2). enca (如果你的系统中没有安装这个命令,可以用sudo yum install -y enca 安装 )查看文件编码

代码如下:

$ enca filename
filename: Universal transformation format 8 bits; UTF-8
CRLF line terminators
需要说明一点的是,enca对某些GBK编码的文件识别的不是很好,识别时会出现:
Unrecognized encoding

文件编码转换
因为现在用linux,原来在windows里的文件都是用GBK编码的。所以copy到linux下是乱码,文件内容可以用iconv来转换可是好多中文的文件名还是乱码,找到个可以转换文件名编码的命令,就是convmv。
convmv命令详细参数  例如

代码如下:

convmv -f GBK -t UTF-8 *.mp3
不过这个命令不会直正的转换,你可以看到转换前后的对比。如果要直正的转换要加上参数 --notest

代码如下:

convmv -f GBK -t UTF-8 --notest *.mp3
-f 参数是指出转换前的编码,-t 是转换后的编码。这个千万不要弄错了。不然可能还是乱码哦。还有一个参数很有用。就是 -r 这个表示递归转换当前目录下的所有子目录。
* 需要安装 convmv-1.10-1.el5.noarch.rpm 
更好的傻瓜型命令行工具enca,它不但能智能的识别文件的编码,而且还支持成批转换。    
(1).安装 

代码如下:

$sudo apt-get install enca  
(2).查看当前文件编码  

代码如下:

enca -L zh_CN ip.txt    
Simplified Chinese National Standard; GB2312     Surrounded by/intermixed with non-text data    
(3).转换    命令格式如下    
$enca -L 当前语言 -x 目标编码 文件名    
例如要把当前目录下的所有文件都转成utf-8    

代码如下:

enca -L zh_CN -x utf-8 *  
检查文件的编码 

代码如下:

enca -L zh_CN file    
将文件编码转换为"UTF-8"编码 

代码如下:

enca -L zh_CN -x UTF-8 file
如果不想覆盖原文件可以这样

代码如下:

enca -L zh_CN -x UTF-8 < file1 > file2

时间: 2024-10-15 01:09:01

Linux系统下文件编码的查看与转换方法的相关文章

linux下文件编码的查看与转换(转)

通常来说,Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8,所以Linux下打开windows的文件会有乱码的情况.另外,有时要将文件进行编码转换,如将简体中文转换为繁体中文. 基于以上情况,本文将就在linux下查看和转换文件的编码进行说明. 1.查看文件的编码 1)在Vim中可以直接查看文件编码 :set fileencoding    即可显示文件编码格式.     http://www.poluoluo.com/server/201011/98282

java在linux系统下文件夹出现中文乱码的问题

  问题描述: linux的默认字符编码是utf-8,在linux上存的是中文名的文件,但是用java读出来就是乱码,全是??????然后我通过:new String(files[i].getName().getBytes("GB2312"),"UTF-8");这样处理一下,中文文件名全变成了?????,应该怎么转码才能获取中文? 问题答案: Java 中的字符编码默认是Unicode 用new String(files[i].getName().getBytes(

关于用java搭建FTP服务器 下载远端Linux系统下文件的一些问题

问题描述 前提是这样的:我们每天都需要远端一台服务器上的数据,那台服务器姑且叫做B吧,B是Linux操作系统,而本地A是windows,现在用java在A上搭建一个FTP服务器,说白了也就是用java语言写一个FTP客户端,实现对远端数据的下载....这两天找找资料给弄出来了,因为windows对windows和windows对Linux还不一样,所以代码都点乱,不过功能可以实现平时工作需要的程序猿们可以拿去参考一下,,另外就是请各位批评指正,把代码优化改善一下子...谢了....代码:pack

Linux系统下如何实现快速的文件搜索

  #whereis 查找已经安装的软件 在Linux上查找某个文件是一件比较麻烦的事情.毕竟在Linux中需要我们使用专用的"查找"命令来寻找在硬盘上的文件. inux下的文件表达格式非常复杂,不象WINDOWS,DOS下都是统一的AAAAAAA.BBB格式,那么方便查找,在WINDOWS中,只要知道要查找的文件的文件名或者后缀就非常容易查找到.Linux中查找文件的命令通常为"find"命令,"find"命令能帮助我们在使用,管理Linux的

Linux 系统下查看硬件信息命令大全

Linux 系统下查看硬件信息命令大全 有许多命令可以用来查看 Linux 系统上的硬件信息.有些命令只能够打印出像 CPU 和内存这一特定的硬件组件信息,另外一些命令可以查看多种硬件组件的信息. 这个教程可以带大家快速了解一下查看各种硬件设备的信息和配置详情的最常用的命令. lscpu lscpu命令能够查看 CPU 和处理单元的信息.该命令没有任何其他选项或者别的功能. lscpu 运行该命令会看到下面输出: lspci lspci是另一个命令行工具,可以用来列出所有的 PCI 总线,还有与

在 Linux 系统下从 ISO 镜像中提取和复制文件的 3 种方法

假设你的 Linux 服务器上有一个超大的 ISO 镜像文件,你想要打开它,然后提取或者复制其中的一个文件.你会怎么做呢? 其实在 Linux 系统里,有很多方法来实现这个要求. 比如说,你可以使用传统的 mount 命令以只读方式把 ISO 镜像文件加载为 loop 设备,然后再把文件复制到另一个目录. 在 Linux 系统下提取 ISO 镜像文件 为了完成该测试,你得有一个 ISO 镜像文件(我使用 ubuntu-16.10-server-amd64.iso 系统镜像文件)以及用于挂载和提取

Linux系统下的文件传输工具:RZSZ的用法

Linux系统下传输方式很多,比如:通过FTP SFTP - 等等.linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地,根据RZSZ特性,这里我们通过SecureCRT提供ZModem配合RZSZ传输工具进行讲解 首先先了解与ssh有关的两个命令可以提供很方便的操作: sz:将选定的文件发送(send)到本地机器 rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到

Linux系统下使用Flacon导入CD音频文件中的歌曲

Linux系统下使用Flacon导入CD音频文件中的歌曲  Flacon 是一款 Qt 工具,用于从音频 CD 中提取个人曲目,基于在CUE文件中提供的信息提取如 WavPack. APE. FLAC. WAV 或 True Audio. 该应用程序提供了输出格式具体设置:你可以设置除 ReplayGain 以外的输出质量,压缩等,无论是每个专辑或音轨. Flacon 另外一个有用的功能就是标记导出的音轨文件,基于在CUE文件或手动提供的信息. 最新版本 Flacon 1.2.0 最近已经发布,

工具-Linux系统下java程序如何将PDF文件转换成SWF文件

问题描述 Linux系统下java程序如何将PDF文件转换成SWF文件 我需要将PDF文件转换成SWF格式的文件,目前是用windows系统开发java程序,windows系统中这种转型已经搞定,用的是swftools工具.但是开发完成之后,程序要部署到Linux系统中.由于不熟悉Linux系统所以无从下手,希望高手指点,最好也用swftools工具转型,尽量详细一些,跪谢. 解决方案 前不久刚用过,应该注意的是swftools工具在linux的安装,有时需要依赖才能安装下去,这个工具安装好就基