gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:41:02 26 4
gpt4 key购买 nike

我们的服务器从 Debian 4 更新到 5 后,我就被击倒了。我们切换到 UTF-8 环境,现在在浏览器上正确打印文本时遇到问题,因为所有文件都是非 utf8 编码,如 iso-8859-1、ascii 等。

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

我尝试的第一个是“iconv”。那个不起作用,它改变了内容,但文件的编码仍然是非utf8。

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

然后我找到了一个python代码,它使用chardet Universal Detector模块来检测文件的编码(效果很好),但是使用unicode类或codec类将其保存为utf-8不起作用,没有任何错误。

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

以下是我对一个文件执行的步骤:

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

就是这样。那一个工作完美。但我怎样才能通过脚本让它运行呢?我想编写一个脚本(Linux shell),它遍历一个目录并获取所有 php 文件,然后使用 vi 和上面的命令转换它们。由于我需要启动 vi 应用程序,我不知道如何执行以下操作:

“vi --run-command=':设置炸弹,: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"

关于file - 在脚本中通过 vim 将文件编码更改为 utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com