PHP fwrite function to write txt file in utf-8 encoding
我制作了一个表格,其中用户用阿拉伯语写他的消息并通过提交按钮提交。该消息保存在数据库中,我需要在服务器上为其他应用程序创建一个.txt文件,该文件显示如下内容:
?ˉ ù?ù?ù?ù??3ù? ù??
我成功地使用了fopen,fwrite函数来创建我的txt文件。
当我在记事本中打开文件时,阿拉伯文字正确显示
但是当我在Eclipse中打开它时,我得到的是这样的东西:
?ˉ ù?ù?ù?ù??3ù? ù??± ?±ù??2ù?ù??2 ù…?±ú??2 ?aù??où??ˉù?ù?ù? ?¨?±ù??ˉ ù??′ù?
然后,当我将txt文件保存为utf-8编码时,上述未知内容会变为阿拉伯语。
但是我不能为每条消息手动做到这一点。
我在互联网上搜索了很多内容,并进行了以下操作:
任何解决此问题的方法都非常令人高兴,我在上个星期一直在努力解决此问题。我知道问题出在编码中,因此如何使用PHP编写utf-8编码的文件?
如果一个程序中的文本显示正常,而另一个程序中的文本显示不正常,则仅表示一个程序可以正确解释文件,而另一个程序则不能。再次保存时,记事本很可能在文件上设置了UTF-8 BOM,因此Eclipse现在会自动识别它是UTF-8编码的。否则,Eclipse会将latin-1或其他某种编码作为默认编码。
两个选项:
- 更改您的Eclipse首选项,默认情况下以UTF-8格式打开文件
- 在编写文件时在文件上设置BOM,请参阅在PHP中使用BOM将字符串编码为UTF-8
BOM有助于使程序识别UTF-8,但也会在其他不需要或不需要BOM的程序中引起问题。是否使用BOM表取决于您的预期用途和目标受众。
在Eclipse中,您需要在菜单"编辑">"设置编码..."中设置编码。