首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中设置文本文件编码?

如何在PHP中设置文本文件编码?
EN

Stack Overflow用户
提问于 2013-09-28 13:27:09
回答 4查看 49.4K关注 0票数 10

如何在PHP中设置文本文件编码(例如UTF-8)?

让我告诉你我的问题。这是我的密码:

代码语言:javascript
复制
<?php 
file_put_contents('test.txt', $data); // data is some non-English text with UTF-8 charset
?>

输出:اÙ

fwrite()具有类似的输出。

但是当我通过记事本创建test.txt并设置字符集UTF-8时,输出就是我想要的。我想在PHP文件中设置字符集。

下面是我的问题:如何通过PHP设置文本文件编码?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-28 19:58:51

PHP在将文本存储在文件中时不应用编码:它存储的数据与字符串中的数据完全相同。

您提到在notepad.exe中打开文件时遇到了问题。该文本编辑器不擅长猜测要打开的文件的编码;如果文本是以UTF-8编码的,则必须选择以UTF-8的形式打开它。如果可能的话,使用另一个文本编辑器。Notepad++是一种流行的替代品。

如果您必须使用notepad.exe作为最后手段,那么在编写任何其他内容之前,将字节顺序标记写到文件中;这将使它识别该文件为UTF-8,同时可能使该文件无法用于其他目的(有关详细信息,请参阅维基百科文章)。

代码语言:javascript
复制
file_put_contents("file.txt", "\xEF\xBB\xBF" . $data);
票数 20
EN

Stack Overflow用户

发布于 2013-09-28 13:35:27

您可以使用编码进行尝试。

代码语言:javascript
复制
$data = mb_convert_encoding($data, 'UTF-8', 'auto');
file_put_contents('test.txt', $data);

也可以检查艾特夫

更新: (尝试这样做,并为您的文本找到正确的编码)

代码语言:javascript
复制
foreach(mb_list_encodings() as $chr){ 
    echo mb_convert_encoding($data, 'UTF-8', $chr)." : ".$chr."<br>";    
}

另外,在GitHub上试试这个。

票数 14
EN

Stack Overflow用户

发布于 2013-09-28 13:35:25

尝试:

代码语言:javascript
复制
file_put_contents('test.txt', utf8_encode($data)); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19067492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档