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