【发布时间】:2011-01-19 16:25:33
【问题描述】:
我们的服务器从 Debian 4 更新到 5 后,我刚刚被击倒。 我们切换到 UTF-8 环境,现在无法在浏览器上正确打印文本,因为所有文件都是非 utf8 编码,如 iso-8859-1、ascii 等。
我尝试了许多不同的脚本。
我尝试的第一个是“iconv”。那个不起作用,它改变了内容,但文件的编码仍然是非utf8。
enca、encamv、convmv 和我通过 apt-get 安装的其他一些工具也存在同样的问题。
然后我找到了一个 python 代码,它使用 chardet Universal Detector 模块来检测文件的编码(工作正常),但是使用 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"
希望有人可以帮助我。
【问题讨论】:
标签: file encoding utf-8 vi character-encoding