http_build_query是PHP中的一个函数,常用于生成URL-encode字符串或签名字符串。
通常的操作如下:
使用http_build_query拼接字符串,可能会存在编码问题,尤其是其中包含特殊字符的时候。这是因为在不同的编码下http_build_query对特殊字符的编码规则不一样。
http_build_query有两种编码,RFC1738和RFC3986。在RFC1738标准下,只有字母数字、特殊字符“$-_.+!*'()”和可以使用用于其保留目的的保留字符被认为是安全的,不被编码,其他的字符一律会被编码。而在RFC3986标准下,只有字母数字、特殊字符“-_.~”和可以使用用于其保留目的的保留字符被认为是安全的,不被编码,其他的字符一律会被编码。