加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

通过脚本中的vim将文件编码更改为utf-8

发布时间:2020-12-15 16:34:43 所属栏目:安全 来源:网络整理
导读:我刚刚被打倒了,我们的服务器已经从Debian 4更新到5。 我们切换到UTF-8环境,现在我们有问题在浏览器上正确打印文本,因为所有文件都是非utf8编码,如iso-8859-1,ascii等。 我尝试了许多不同的脚本。 我试过的第一个是“iconv”。那一个不工作,它改变内容
我刚刚被打倒了,我们的服务器已经从Debian 4更新到5。
我们切换到UTF-8环境,现在我们有问题在浏览器上正确打印文本,因为所有文件都是非utf8编码,如iso-8859-1,ascii等。

我尝试了许多不同的脚本。

我试过的第一个是“iconv”。那一个不工作,它改变内容,但文件enconding仍然是非utf8。

同样的问题与enca,encamv,convmv和一些其他工具我通过apt-get安装。

然后我发现了一个python代码,使用chardet通用检测器模块,以检测文件的编码(工作正常),但使用unicode类或编解码器类保存为utf-8不工作,没有任何错误。

我发现将文件及其内容转换为UTF-8的唯一方法是vi。

这些是我为一个文件做的步骤:

vi filename.php
:set bomb
:set fileencoding=utf-8
:wq

而已。那一个工作完美。但是如何可以通过脚本运行。
我想写一个脚本(linux shell),它遍历一个目录所有的php文件,然后使用vi使用上面的命令转换它们。
因为我需要启动vi应用程序,我不知道如何做这样的事情:

“vi –run-command =’:set bomb,:set fileencoding = utf-8’filename.php”

希望有人可以帮助我。

这是我知道的最简单的方法,从命令行轻松地这样做:
vim +"argdo se bomb | se fileencoding=utf-8 | w" $(find . -type f -name *.php)

或者更好的是,如果文件的数量预计是相当大:

find . -type f -name *.php | xargs vim +"argdo se bomb | se fileencoding=utf-8 | w"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读