我在使用 PHP 将特殊字符(丹麦语,还有一些符号)文本写入 .txt 文件时遇到了一个小问题。 举个例子:
<?php
$words = "å æ ø";
$file = fopen("test.txt","w");
fwrite($file, ($words));
fclose($file);
?>
当我在记事本中打开上面的代码时,它可以正常工作并且看起来正确。但出于在线目的,我需要使用浏览器(fx.Firefox)打开生成的 .txt 文件,并且在浏览器中,除非我从显示菜单中选择“Unicode”作为“字符编码”,否则字符不会正确显示Firefox,Firefox 中的默认字符编码是“western”。
如果我用记事本创建一个普通的 .txt 文件并写入“å æ ø”并以正常方式保存它,它在浏览器中看起来正确。
我一直在寻找有关 fwrite 编码选项的信息,但我真的不知道从哪里开始。
亲切的问候
最佳答案
解决方案如下:由于UTF-8字节顺序标记是'\xef\xbb\xbf',我们应该将其添加到文档的标题中。
<?php
function writeStringToFile($file, $string) {
$f = fopen($file, "wb");
$string= "\xEF\xBB\xBF".$string; // utf8 bom
fputs($f, $string);
fclose($f);
}
?>
关于PHP - 使用 fwrite 写入特殊字符 - 在记事本中看起来不错,但在浏览器中则错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39931206/