ASP跟PHP对URL ENCODE编码后不同的解释

     昨日在分析SongTatse的歌曲地址的时候,先是用ASP调试的,其中有首歌《念残》,真实的文件地址中文件名是:%E5%BF%B5%E6%AE%8B ,但是ASP用server.urlencode("念残")之后的结果却是%C4%EE%B2%D0 。 不过当复制地址进迅雷的时候,迅雷都可以正确识别出来文件名为:念残。奇哉怪哉!百思不得其解。  

ASP/Visual Basic代码
  1. <%   
  2. str=server.urlencode("念残"):response.write str   
  3. '%C4%EE%B2%D0   
  4. %>  
PHP代码
  1. <?php   
  2. echo urlencode("念残");   
  3. //%E5%BF%B5%E6%AE%8B   
  4. ?>  

      其实这也不是什么问题,主要是因为太粗心,忽略了文件编码的问题!当把ASP文件修改为UTF8编码后,一切就会变得相同!

ASP/Visual Basic代码
  1. <%   
  2. response.Charset="utf-8"  
  3. str=server.urlencode("念残"):response.write str   
  4. '%E5%BF%B5%E6%AE%8B   
  5. %>  

       前后这两个ASP文件不同之处在于前者:

 

       也就是说前者是GBK后者是UTF。

       ~~ 囧

       附件: JavaScript 和 Php 对中文进行编码  ← 在AJAX尤其重要!

posted @ 2009-10-22 20:33  km ben  阅读(1065)  评论(0编辑  收藏  举报