ASP跟PHP对URL ENCODE编码后不同的解释
昨日在分析SongTatse的歌曲地址的时候,先是用ASP调试的,其中有首歌《念残》,真实的文件地址中文件名是:%E5%BF%B5%E6%AE%8B ,但是ASP用server.urlencode("念残")之后的结果却是%C4%EE%B2%D0 。 不过当复制地址进迅雷的时候,迅雷都可以正确识别出来文件名为:念残。奇哉怪哉!百思不得其解。
ASP/Visual Basic代码
- <%
- str=server.urlencode("念残"):response.write str
- '%C4%EE%B2%D0
- %>
PHP代码
- <?php
- echo urlencode("念残");
- //%E5%BF%B5%E6%AE%8B
- ?>
其实这也不是什么问题,主要是因为太粗心,忽略了文件编码的问题!当把ASP文件修改为UTF8编码后,一切就会变得相同!
ASP/Visual Basic代码
- <%
- response.Charset="utf-8"
- str=server.urlencode("念残"):response.write str
- '%E5%BF%B5%E6%AE%8B
- %>
前后这两个ASP文件不同之处在于前者:
也就是说前者是GBK后者是UTF。
~~ 囧
附件: JavaScript 和 Php 对中文进行编码 ← 在AJAX尤其重要!