PHP 中的奇怪编码问题

Strange encoding issue in PHP

我已经用头撞墙几个小时了,我仍然无法弄清楚问题所在。我有一个关联数组,当我尝试用它构建查询时,它在浏览器中显示奇怪的字符。

$reportVars = [
            "__report" => "alpha",
            "start_date" => "2001",
            "end_date" => "2002",
            "dsp_id" => "SPP",
            "current_sp_id" => "SPP_1",
            "sp_name" => "fawzan"

        ];

print_r(http_build_query($reportVars));

这是我在浏览器中得到的输出

__report=alpha&start_date=2001&end_date=2002&dsp_id=SPP¤t_sp_id=SPP_1&sp_name=fawzan

注意 SPP 后输出中的奇怪字符 (¤),在你问之前 不,我没有从任何地方复制它。我只是徒手打字。

有人可以帮我吗?

¤ 正在转换为 ¤

您现在可能没有几个选择:

  1. current_sp_id 移到顶部,使其成为第一个变量,这样它前面就没有 &

  2. 使用 &amp 作为分隔符而不是 & 仅通过使用:

    print_r(http_build_query($reportVars, '', '& amp;'));

(删除 &amp 之间的 space,添加它是因为它也仅在此处转换为 &。

P.S。根据我的理解,php 不会导致此问题,这是您的浏览器处理 ¤ 的方式,可能会将其转换为 ¤ 本身