我从页面获取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
我们将不胜感激任何帮助......
答案 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并进行错误编码。