fget 向浏览器显示不同语言的不正确输出



我正在使用my_file.php文件中获取内容fgets my_file.php中的内容是cz语言

"Overte svuj úcet";

但是在获取并print_r浏览器显示之后

"Ověřte svůj úÄet"

但是如果我回显"Overte svuj úcet"; 浏览器显示正确的输出

"Overte svuj úcet";

实际上我想为不同的语言生成一个csv文件,尽管我设置了charset='utf-8'但没有成功,我也用谷歌搜索但没有找到解决方案。

你得到的是一个简单的编码不匹配。数据采用编码 A,但浏览器尝试将其读取为编码 B。 fgets 不对编码做任何事情,它只是从文件中读取原始字节,仅此而已。如果您也没有转码数据,则文本本身没有任何问题。

这只会留下浏览器,浏览器会错误地解释数据。您应该始终输出一个指定编码的 HTTP 标头:

header('Content-Type: text/html; charset=utf-8');

您还可以将 Web 服务器配置为默认输出此标头。您可能将 HTML <meta> 标记设置为表示 UTF-8,但可能会在该标记之前输出数据。

无论哪种方式,请确保 HTTP 标头表示实际数据的编码。

好的,

经过长时间的搜索,我找到了它,这解决了我的问题

https://github.com/PHPOffice/PHPExcel/downloads

最新更新