PHP - 使用 fwrite 写入特殊字符 - 在记事本中看起来不错,但在浏览器中则错误

标签 php encoding text-files special-characters fwrite

我在使用 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);
     }
?>

read about BOM

关于PHP - 使用 fwrite 写入特殊字符 - 在记事本中看起来不错,但在浏览器中则错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39931206/

相关文章:

Vagrant Homestead 上的 PhpStorm 和 XDebug

php - 为什么, fatal error : Class 'PHPUnit_Framework_TestCase' not found in . ..?

java - 尝试从文本文件中读取

linux - 输出列格式排序 linux

java - 在 Android 应用程序中读取 10mb 大文本文件

php - 从服务器设置 HTTP Referrer?

javascript - 使用Javascript在ARRAY中获取PHP变量时出现问题

C#:将 shift-JIS 中的日文文本编码并存储为 ASCII 转换为 UTF-8

json - 从编码结构 Golang 中删除转义字符

php - 如何使用PHP在邮件主题中发送带有二进制字的邮件