【发布时间】:2016-01-21 10:39:45
【问题描述】:
此问题发生在我的服务器中,但我无法重现此问题。我的代码如下
$data = [
'param1' => urlencode($param1),
'param2' => urlencode($param2)
];
echo json_encode($data);
$param1 和 $param2 由查询字符串获取 前http://mydomain?param1=param1¶m2=param2
我试图通过应用非 utf-8 字符来重现这一点,但无法重现。请帮我重现这个。 我测试的示例网址。
【问题讨论】:
-
urlencode应该总是返回一个 ASCII 字符串,所以我看不出你的代码会如何产生“无效的 UTF-8 序列”错误。我怀疑还有别的东西在起作用。 -
我尝试在不编码参数的情况下重现此问题,并且我将参数硬编码如下,但仍然无法重现此问题。 $param1 = "À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö"; $data = ['param1' => $param1]; echo json_encode($data);
-
@nwellnhof 你是对的,非常感谢你的帮助,实际上这个问题并没有因为这些参数而发生。我在数组中有另一个索引,例如 $data['param3'] = $_SESSION['param3'];当我将“\x99\x9C%”添加到会话中时,这可以重现。