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

Php fget显示不同语言的浏览器输出不正确,php,character-encoding,fgets,Php,Character Encoding,Fgets,我使用fgets从my_file.php文件中获取内容my_file.php中的内容使用cz语言 "Overte svuj úcet"; 但在获取和print\r浏览器显示 "Ověřte svůj úÄet" 但如果我呼应“公开的svujúcet”;浏览器显示正确的输出 "Overte svuj úcet"; 实际上,我想为不同的语言生成一个csv文件,虽然我设置了charset='utf-8',但没有成功,我也用谷歌搜索了一下,但没有找到解决方案。您遇到的是一个简单的编码不匹配

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

"Overte svuj úcet";
但在获取和
print\r
浏览器显示

"Ověřte svůj úÄet"
但如果我呼应“公开的svujúcet”;浏览器显示正确的输出

"Overte svuj úcet";

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

您遇到的是一个简单的编码不匹配。数据是编码A,但浏览器试图将其作为编码B读取。
fgets
对编码没有任何作用,它只是从文件中读取原始字节,不多不少。如果您也没有对数据进行转码,那么文本本身就没有问题

这只会导致浏览器无法正确解释数据。您应该始终输出指定编码的HTTP头:

header('Content-Type: text/html; charset=utf-8');
默认情况下,您还可以将web服务器配置为输出此标头。您可能将HTML
标记设置为表示UTF-8,但可能是在该标记之前输出数据


无论哪种方式,都要确保HTTP头表示实际数据所在的编码。

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


该文件中的CZ语言使用哪种编码?你也需要分享它。好的,我使用了header('Content-Type:text/html;charset=utf-8');&现在浏览器显示正确,但我的csv仍然保存错误的文本™te svÅjÃÄeta还尝试了标题('Content-Type:text/csv;charset=utf-8');&现在浏览器显示正确,但我的csv仍然保存错误的文本™您是如何测试CSV是否“保存”错误的?也许你应该从开始更好地了解发生了什么。是的,如果你想生成涉及多种语言的电子表格文件,这个库是最好的选择。