【发布时间】:2013-07-05 15:08:30
【问题描述】:
我在 SO 上阅读了一些答案,但没有找到答案,是否可以在 php.ini 中为二进制数据设置 ANSI endocing。我正在使用 curl 读取图像并将它们回显给用户,但它们保存为 UTF-8,并且不显示图像。当我将它保存为服务器上的文件(使用 fopen fwrite)并打开该文件时,一切正常,就像我在 Notepad++ 中将编码更改为 ANSI 一样。现在我正在 Windows 上测试它,但它也应该在 Unix/Linux 机器上工作。是否可以在 php 中执行此操作?这与我没有找到解决方案的另一个问题How to display binary data from curl in php 有关。
我尝试使用mb_detect_encoding 函数与iconv 一起使用,但它不会在我测试它的本地主机上返回任何内容。
我不知道它是否需要Windows-1252,它在我认为不应该向不同浏览器发送不同数据的服务器上工作。
【问题讨论】:
-
二进制数据根据定义没有字符编码。只有字符串有一些字符编码!
-
很有可能您没有重新传输文件头,说明它是什么类型的文件以及什么图像类型等
-
而 PHP“字符串”是二进制数据,除非您假设它们是某种字符编码的文本。
-
我回显字符串并从服务器发送标头,输出数据保存为 UTF-8(当我在 Notepad++ 中打开它时)但我只能看到它如果我将结束更改为 ANSI,所以我需要以某种方式强制ANSI。