PHP Ansi转UTF-8

时间:2011-06-25 23:16:05

标签: php encoding utf-8 ansi mojibake

我正在尝试在PHP中创建一个脚本,用于将某些文件转换为UTF-8。我有一个希腊语文件,其中Notepad ++表示它是“ANSI”编码。当我将它上传到服务器时,它会检测到它的编码为UTF-8(我认为这是错误的)。然后,当我使用utf8_encode()将其内容转换为UTF-8并下载新文件时,字符会混乱。我试图用PHP删除BOM,结果是一样的。我试图用PHP删除BOM而不将文件转换为UTF-8,但文件仍然是ANSI编码,没有混乱的字符。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

删除BOM,然后执行:

$file = file_get_contents('file.php');
$file = iconv('greek-charset','UTF-8', $file);
file_put_contents('file.php', $file);
//ta-da!

更改greek-charset以更正charset的名称(可能为Windows-1253)。