读取UTF-8文本行并将其写入文件

时间:2012-01-25 12:35:02

标签: php

我从页面获取UTF-8文本行然后转储到文件中。原始页面中的文字显示正常。但是,输出文件中的文本出现乱码!

我的尝试:

$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$pageContent = file_get_contents("page.html");
//Here: use regex to grab the title ...
$stringData = $title."\n";
fwrite($fh, utf8_encode($stringData));
fclose($fh);

在向文件写入任何内容之前。我将文件保存为UTF-8,我也将其保存为Unicode,我仍然将文本拼写为:

  

ÊãäíÇÊíááÌãíÚ

我没有使用PHP5

我们将不胜感激任何帮助......

2 个答案:

答案 0 :(得分:7)

请勿使用utf8_encode

对于大喊大叫抱歉,它经常被误用。
您的文字已经是UTF-8。*您无需再次将其编码为UTF-8 utf8_encode Latin1编码文本转换为UTF-8。您的文字不是Latin1编码的。这就是为什么它搞砸了。只需读取和写入文本,完成。无需编码转换或重新编码。

*假设page.html 以UTF-8编码。从你所说的,似乎是。

答案 1 :(得分:0)

看起来你是双重编码。如果您阅读utf8_encode文档,您将看到它旨在将ISO-8859-1字符串编码为UTF-8。如果你已经有一个UTF-8字符串,你不应该在它上面运行这个函数;否则它会将其解释为ISO-8859-1并进行错误编码。