`

Centos下文本文件格式转码

阅读更多

最近遇到服务器网站的目录下的所有文件的编码全是gb2312,直接用cat或者vim打开显示都是乱码,网页显示出来当然也全是乱码,所以要解决怎么把目录下的所有文件(包括子文件夹里的文件)由gb2312转码成utf-8的问题。网上一顿搜,总共用了三种方法,最后终于把问题解决了。

 

第一种方法是利用vi编辑器,打开需要转码的文件。

:set fileencoding

这样可以查看文件当前的编码格式。

:set fileencoding=utf-8

说这样能把当前的文件转码成utf-8。但是失败了,直接打开还是显示乱码,更别说浏览器浏览的页面了。而且即使能转码成功,站点目录下的文本文件那么多,不可能一个个挨个打开然后这样设置吧,工作量巨大。

 

第二种方法是利用iconv。iconv系统默认就已经安装了的。通过命令:

iconv -f gb2312 -t utf-8 abc.html

这样确实把abc.html的编码转换成了utf-8。这样是将转换后的文本显示在了终端上,也可以:

iconv -f gb2312 -t utf-8 abc.html -o abc.html

用转码后的文件覆盖原文件,毕竟这才是最后想达到的目的。

 好了,现在就可以对整个目录下(包括子目录下)的所有文本文件进行转码了:

find -type f -name "*.html" -exec iconv -f gb2312 -t utf-8 {} -o {} \;

通过-exec将find命令的每个结果带入后面iconv的{}内,转换css和javascript文件类似。但是悲剧的是输出很多错误提示。大概就是非法输入,也就是很多html文件里面的字符不对,用iconv转码出现错误。寻思大概不是所有的html文件的编码都是gb2312,所以把-f gb2312这个参数去掉,变成这样:

find -type f -name "*.html" -exec iconv -t utf-8 {} -o {} \;

 但是遗憾的是错误依旧。所有用iconv这种办法还是行不通。

 

第三种方法是用enca。Centos默然没有安装enca,先下载然后安装:

wget http://pkgs.repoforge.org/enca/enca-1.10-1.el6.rf.x86_64.rpm

 安装:

rpm -ivh enca-1.10-1.el6.rf.x86_64.rpm

enca的用法:
enca -L zh_CN file    #查看file的编码格式
enca -L zh_CN -x UTF-8 file   #将file转换成utf8的编码格式
enca -L zh_CN -x UTF-8 file1 file2   #转换之后存成file2文件,不覆盖file1
好了,接下来就是将目录下的所有文本文件转成成utf8格式: 

find -type f -name "*.html" -exec enca -L zh_CN -x UTF-8 {} \;

这样转换以后发现只有一两个文件显示原文件由于未知格式转码失败,其它的的html文件都转码成功了,哈哈。接下来就是将htm,css,js后缀的文件也用同样的办法进行转码就行了。哎,问题可算解决了。

 

分享到:
评论

相关推荐

    centos 6.5 安装 FFmpeg及转码插件(内附安装方法【自编】)

    在 CentOS 6.5 上安装 FFmpeg 及其转码插件,可以帮助用户完成各种多媒体处理任务,例如将视频格式转换为其他格式,调整视频质量,或者提取音频轨道等。以下是一个详细步骤的安装教程。 ### 一、更新系统 在安装新...

    centos6.7镜像文件

    centos6.7镜像文件

    Centos6.5 镜像文件下载

    ### Centos6.5镜像文件下载与安装详解 #### 一、CentOS 6.5简介 CentOS是Community ENTerprise Operating System的缩写,是一个基于Linux内核的操作系统,它主要提供了企业级的计算环境。CentOS 6.5作为CentOS 6...

    centos 66 ks文件

    centos 66 ks文件

    Centos7.6镜像文件:CentOS-7-x86-64-DVD-1810.iso

    而镜像文件则是安装介质的数字化映像,在此案例中,它被保存为 .iso 格式。 ISO 文件是一个光盘映像,它可以被刻录到实体光盘上,或者在虚拟机软件中模拟一个光驱。.iso 文件方便了操作系统的安装,无需真实光盘就...

    centos 76 ks文件

    centos 76 ks文件

    CentOS 7.5 ISO文件百度网盘下载地址

    CentOS 7.5 ISO文件,text文件中为永久有效分享的百度网盘下载链接地址,若是由于某些原因导致失效,还烦请私信

    CentOS6.5的64位镜像文件iso,迅雷种子

    CentOS6.5的64位镜像文件iso。CentOS是基于linux内核而扩展的操作系统。

    centos7.9.tar

    centos7.9镜像文件

    CentOS 7 文件对比

    本文将深入探讨在CentOS 7环境下,不同文件系统的性能对比,帮助用户理解如何选择最佳的文件系统以优化系统性能。 文件系统是操作系统的核心组件之一,负责管理存储设备上的数据,包括文件的创建、读取、更新和删除...

    Cent0S-6.9镜像下载文件

    CentOS 6.9 镜像下载文件 CentOS 6.9 镜像下载文件是 CentOS 操作系统的镜像文件,它是基于 Red Hat Enterprise Linux 源代码开发的开源操作系统。CentOS 6.9 是 CentOS 6.x 系列的最新版本,具有良好的稳定性和...

    centos7救援模式修复系统文件

    ### CentOS 7 救援模式修复系统文件 #### 背景介绍 在日常使用Linux系统的过程中,可能会遇到由于突然断电、非法关机或硬件兼容性问题导致系统文件损坏,进而使得系统无法正常启动的问题。针对这种情况,CentOS 7...

    CSDN-Centos7.9-1.ovf --Centos7.9模板文件

    CSDN-Centos7.9-1.ovf 文件,Vmware WorkStaion 装系统,可以直接导入使用。该系统,预安装了编译所用到的所有的库文件,并且安装了vim 工具,手动配置了IP地址,建议使用者,手动修改IP地址后,方可使用,该系统的...

    CentOS7 64位镜像文件

    【标题】"CentOS7 64位镜像文件"涉及的是Linux操作系统中的一个特定发行版——CentOS 7的64位版本。CentOS(Community ENTerprise Operating System)是一个开源、免费的操作系统,它基于RHEL(Red Hat Enterprise ...

    centos 6.5下安装文件上传下载服务

    centos 6.5下的文件上传下载服务安装和配置 centos 6.5下的文件上传下载服务是指在centos 6.5操作系统中安装和配置文件上传下载服务,以解决上传和下载文件的问题。这个服务可以让用户轻松地上传和下载文件,而不...

    centos7磁盘和文件系统管理

    通过本篇文章,我们将详细介绍 CentOS 7 中的磁盘和文件系统管理,包括磁盘的分区、文件系统的创建、挂载和管理等方面的内容。 一、磁盘分区 在 CentOS 7 中,磁盘分区是指将物理磁盘分割成多个逻辑磁盘的过程。...

    centos6.3 httpd配置文件

    centos6.3 httpd配置文件

    Centos 7 镜像文件

    Centos 7 iso镜像文件

    linux CentOS的iso镜像文件

    - “iso”则是文件格式,即ISO镜像文件。 - **文件用途**:此ISO镜像文件主要用于安装CentOS 8操作系统。它可以被用来创建全新的CentOS 8系统安装,也可以用于现有系统的升级或修复。 - **安装过程**:要使用此...

    CentOS6.6的64位镜像文件iso,迅雷种子

    CentOS6.6的64位镜像文件iso,迅雷种子。centos是基于linux的内核开发的操作系统,是企业服务器广泛使用的操作系统。

Global site tag (gtag.js) - Google Analytics