bik*_*y77 3 php encoding utf-8 character-encoding file-encodings
我有一个PHP应用程序,其文件编码为希腊ISO(iso-8859-7)。我想将文件转换为utf-8,但仅用utf-8保存文件是不够的,因为希腊文本会出现乱码。是否有一种“自动”方法来执行此操作,以便我可以完全转换应用程序的编码,而不必遍历每个文件并重写文本?
在Linux系统上,如果确定当前所有文件都已按照ISO-8859-7编码,则可以执行以下操作:
bash> find /your/path -name "*.php" -type f \
-exec iconv "{}" -f ISO88597 -t UTF8 -o "{}.tmp" \; \
-exec mv "{}.tmp" "{}" \;
Run Code Online (Sandbox Code Playgroud)
这将转换位于/your/path所有子目录中的所有PHP脚本文件。删除-name "*.php"以转换所有文件。
由于您使用的是Windows,因此最简单的选择是这样的PHP脚本:
<?php
$path = realpath('C:\\your\\path');
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($path),
RecursiveIteratorIterator::SELF_FIRST
);
foreach($iterator as $fileName => $file){
if($file->isFile())
file_put_contents(
$fileName,
iconv('ISO-8859-7', 'UTF-8', file_get_contents($fileName))
);
}
Run Code Online (Sandbox Code Playgroud)