我正在开发和应用程序,必须与PayPal集成。为此,它通过API进行一些调用,在这些调用中,我必须传递一些URLEncoded参数。我的问题是我没有让它工作,因为经典asp的Server.URLEncode给我带来了一些奇怪的东西。
见下文:
@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编码的,我是用DreamLaver编写的,用CTRL + J>标题/编码
有谁知道为什么我在ASP经典和PHP中得到了如此不同的答案?
提前感谢您的帮助。
答案 0 :(得分:1)
URLEncode的ASP版本比PHP版本更严格。
某些字符(如点或下划线)并非绝对需要进行编码(与“&”符号或等号相反,如果不进行编码,则可能会破坏查询字符串)。
我认为由于产生较少“丑陋”的URL,PHP会将这些字符保留为未编码,因为它们没有任何损害,而ASP严格编码不是ASCII字母数字的所有内容。
最后,字符串之间没有区别。