上传了个Unicode文本文件(就是IE的导出的Book.html文件),PHP中是这样的:$txt = file_get_contents($_FILES["file"]["tmp_name"]);
echo $txt;上面的代码是可以的。问题在于,我不只是原文echo,我还要对这个$txt先做一点处理呢,我发现str_ireplace对$txt不起作用,什么都找不到。
甚至不能再echo $txt前面在输出任何东西,不然就乱码了。echo iconv("UTF-8", "GBK//IGNORE",$txt1); //这样也不行。什么网上转换编码的我看了两天,什么方法我都试过了都不行.
其实我就是想上传一个文本文件,全文赋值给一个字符串变量,然后做一些很简单的替换之后再echo给客户端,仅此而已。
其他utf-8编码的都已经ok了,就是这个Unicode编码的总不行。什么原因呢?求解,谢谢。
echo $txt;上面的代码是可以的。问题在于,我不只是原文echo,我还要对这个$txt先做一点处理呢,我发现str_ireplace对$txt不起作用,什么都找不到。
甚至不能再echo $txt前面在输出任何东西,不然就乱码了。echo iconv("UTF-8", "GBK//IGNORE",$txt1); //这样也不行。什么网上转换编码的我看了两天,什么方法我都试过了都不行.
其实我就是想上传一个文本文件,全文赋值给一个字符串变量,然后做一些很简单的替换之后再echo给客户端,仅此而已。
其他utf-8编码的都已经ok了,就是这个Unicode编码的总不行。什么原因呢?求解,谢谢。
global $auto;
$contents = file_get_contents($filename);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 &&
ord($charset[3]) == 191) {
if ($auto == 1) {
$rest = substr($contents, 3);
rewrite ($filename, $rest);
return ("<font color=red>BOM found,
automatically removed.</font>");
} else {
return ("<font color=red>BOM found.
</font>");
}
}
else return ("BOM Not Found.");
}function rewrite ($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}