PHP fwrite函数以utf-8编码写入txt文件

时间:2011-08-19 19:25:16

标签: php utf-8 arabic fwrite

我制作了一个表格,用户用阿拉伯语写下他的信息并通过提交按钮提交。消息保存在数据库中,我需要在服务器上为其他应用程序创建一个.txt文件,显示如下内容:

  

دپÙٓيسÙÙ¾Ø

我成功使用了fopen,fwrite函数来创建我的txt文件。

当我在记事本中打开文件时,阿拉伯文字显示正确 但是当我在日食中打开它时,我会得到类似的东西:

  

دپÙٓيسÙپررÙزنيزÙ...رکزتÙغندÙييبريدÙØ'Ù

之后当我将txt文件保存在记事本中时,utf-8编码将上述未知内容更改为阿拉伯语。
但我不能手动为每条消息做这件事。

我在互联网上搜索了很多并做了这些:

  1. 我将脚本保存在utf-8
  2. 我使用了utf8_encode函数
  3. 我也设置了ini_set('default_charset', 'UTF-8');
  4. 这也是<meta http-equiv="Content-Type" content="text/html; charset=utf-8; encoding=utf-8" />
  5. 我将fwrite中的参数更改为“wb”,其中b是二进制
  6. 对这个问题的任何解决方案都很高兴我在上周继续研究这个问题。我知道问题在于编码,所以如何使用PHP编写utf-8编码文件?

2 个答案:

答案 0 :(得分:3)

如果文本在一个程序中显示正常而在另一个程序中没有显示,这意味着一个程序正确解释文件而另一个程序没有。很有可能当您再次保存时,Notepad会在文件上设置UTF-8 BOM,因此Eclipse现在会自动识别出它是UTF-8编码的。如果没有这个,Eclipse会假定使用latin-1或其他编码作为默认编码。

两个选项:

BOM可能有助于使程序识别UTF-8,但也可能导致其他不期望或不需要BOM的程序出现问题。是否使用BOM取决于您的预期用途和目标受众。

答案 1 :(得分:0)

在eclipse中,您需要在菜单中设置编码编辑&gt; 设置编码...