URLEncode在ASP classic和PHP中返回不同的值
我正在开发和应用,必须与贝宝集成。要做到这一点,它通过API进行一些调用,在这些调用中,我必须传递一些URL编码的参数。我的问题是,我无法让它工作,因为经典asp的Server.URLEncode返回了一些奇怪的信息 见下文:URLEncode在ASP classic和PHP中返回不同的值,php,url-encoding,Php,Url Encoding,我正在开发和应用,必须与贝宝集成。要做到这一点,它通过API进行一些调用,在这些调用中,我必须传递一些URL编码的参数。我的问题是,我无法让它工作,因为经典asp的Server.URLEncode返回了一些奇怪的信息 见下文: @CODEPAGE="65001" Response.Charset = "UTF-8" response.write(server.URLEncode("xxxx_1344559025_biz_api1.yy.com")) 返回此字符串:xxxx%5F1344
@CODEPAGE="65001"
Response.Charset = "UTF-8"
response.write(server.URLEncode("xxxx_1344559025_biz_api1.yy.com"))
返回此字符串:xxxx%5F1344559025%5Fbiz%5Fapi1%2Eyy%2Ecom
在PHP中也是如此
echo(urlencode('xxxx_1344559025_biz_api1.yy.com'));
返回此字符串:xxxx_1344559025_biz_api1.yy.com
这两个文件都是用UTF-8编码的,我在DreamWeaver上用CTRL+J>title/encoding进行编码
有人知道为什么我在ASP classic和PHP中得到如此不同的答案吗
提前感谢您的帮助。URL编码的ASP版本比PHP版本更严格 有些字符,如点或下划线,不一定需要编码(与符号和或等号相反,如果不编码,可能会中断查询字符串) 我想,为了生成不那么“难看”的URL,PHP没有对这些字符进行编码,因为它们不会造成伤害,而ASP严格地对所有非ASCII字母数字的内容进行编码
最后,字符串之间没有区别。ASP对
和字符进行编码有点过火。这些不是URL元字符,所以没有真正的理由对它们进行编码。谢谢你的回答!我会设法解决它的。@André:我刚刚写了一个函数,将%5F
替换回\uu
等等。