PHP意外字符编码
我有一个PHP脚本,它获取一个ICS文件,对其进行一些更改,并使用PHP意外字符编码,php,string,encoding,Php,String,Encoding,我有一个PHP脚本,它获取一个ICS文件,对其进行一些更改,并使用Content-Type:application/ICS和Content-Disposition:attachment重写它以供下载;filename=“test.ics”。剧本写得很好。但是,像“这样的一些字符会转换为',但不是全部,只有我修改过的行中的代码 当我var_udump作为有效负载写入的字符串时,浏览器将显示所有字符 有什么想法吗 编辑:我使用来自的ICS解析器。问题来自于它,但在查看代码后,我找不到它可以在
Content-Type:application/ICS
和Content-Disposition:attachment重写它以供下载;filename=“test.ics”
。剧本写得很好。但是,像“
这样的一些字符会转换为'代码>,但不是全部,只有我修改过的行中的代码
当我var_udump
作为有效负载写入的字符串时,浏览器将显示所有字符
有什么想法吗
编辑:我使用来自的ICS解析器。问题来自于它,但在查看代码后,我找不到它可以在哪里用htmlentities
替换某些字符,我认为您需要在修改文件时解码html字符:
您需要将[0-9]+
实体转换为UTF-8
,您可以使用和进行转换,即:
$string = "stack user's";
echo preg_replace_callback("/(&#[0-9]+;)/", function($m) { return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES"); }, $string);
//stack user's
当然,浏览器将解码HTML实体并将其显示为字符。首先,我们无法用给出的信息告诉您它们是如何成为HTML实体的。事实上,您是对的,我只是echo-htmlentities($payload)
,而字符实际上已经没有正确编码。现在我只需要找到变化发生的地方..固定,就像一个符咒。我认为这些角色是由电影改编的。我查看了他们的代码,但找不到他们在哪里将一些字符替换为htmlentities
。