Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP意外字符编码_Php_String_Encoding - Fatal编程技术网

PHP意外字符编码

PHP意外字符编码,php,string,encoding,Php,String,Encoding,我有一个PHP脚本,它获取一个ICS文件,对其进行一些更改,并使用Content-Type:application/ICS和Content-Disposition:attachment重写它以供下载;filename=“test.ics”。剧本写得很好。但是,像“这样的一些字符会转换为',但不是全部,只有我修改过的行中的代码 当我var_udump作为有效负载写入的字符串时,浏览器将显示所有字符 有什么想法吗 编辑:我使用来自的ICS解析器。问题来自于它,但在查看代码后,我找不到它可以在

我有一个PHP脚本,它获取一个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