linux批量将文件编码由gbk转成utf8

编码转换

一些老的项目,文件编码用的还是gbk,很不利于扩展及维护。经常需要在程序中进行判断及转码,容易出现乱码现象。最好的方式就是将整个项目转成utf-8。那么如何批量将一个目录下的文件转编码?

思路

  • 找出目录下的所有文件类型
  • 遍历要转码的文件类型,如.php
  • 利用vim的set fileencoding=utf8进行转码

具体实现

设置~/.vimrc

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set ts=4
set expandtab

找出目录下的所有文件类型

find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u

转码的脚本

gbk_to_utf8.sh

#!/bin/bash
for i in `find -name \*.php`
do
    vim -s gbk_utf8.vi $i
done

gbk_utf8.vi

:set fileencoding=utf8
:wq!

在当前目录下执行转码脚本:

./gbk_to_utf8.sh

欢迎查看我的网站原文

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏noteless

windows查看端口占用 windows端口占用 查找端口占用程序 强制结束端口占用 查看某个端口被占用的解决方法 如何查看Windows下端口占用情况

2.查询指定的端口被占用的情况   上图中本地地址一列中的冒号:  后面的数字就是端口号

1253
来自专栏抠抠空间

Linux文件操作相关命令

1670
来自专栏Pythonista

记录java版本不兼容的坑,(kafka运行报错)

我的kafka是1.8java环境下的,所以卸载1.7java,安装最新的java1.8

3892
来自专栏Java 技术分享

Hibernate Session总结

3448
来自专栏木制robot技术杂谈

在Ubuntu14.04下创建可执行文件

前言 使用ubuntu的过程中一些软件启动前总是需要执行一下shell语句启动或者出问题时重启,但是不常用的话总会忘记,于是萌生了做一个可执行文件双击执行一段s...

4475
来自专栏JavaEdge

JVM性能调优实战(一) - 基于JDK命令行的监控1 JVM的参数类型2 查看JVM运行时参数3 jstat查看JVM统计信息GC

631
来自专栏大内老A

[WCF 4.0新特性] 默认绑定和行为配置

对于传统的WCF配置系统,无论是绑定的配置还是行为(服务行为和终结点行为)都必须具有一个名称。而正是通过整个配置名称,它们才能被应用到目标对象(终结点或者服务)...

19010
来自专栏ImportSource

厕读:每日一题,面试无忧

9. volatile关键字是否能保证线程安全?() 答案:不能 解析:volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到...

33210
来自专栏Debian社区

Debian Stretch 安装 Nodejs 最新版本

有时候我们运行某个软件需要用到较新版的 Node.js 环境,而 Debian 系统默认提供的 Nodejs,版本比较低,Debian 9.3 的系统中版本为 ...

1631
来自专栏王二麻子IT技术交流园地

CentOS yum安装Apache + PHP + Tomcat7 + MySQL

可以参考下文在CentOS安装Apache + PHP + Tomcat7 + MySQL。 ---------------------------------...

8045

扫码关注云+社区

领取腾讯云代金券