-
server.urlencode的GB2312和Utf-8问题
网络 2013/10/5 17:00:40今天在写baidu的mp3小偷玩,我的文件是用utf-8编码。
在查询关键词的时候发现 server.urlencode 后的字符和baidu的完全不同。
搜索了半天了没有找到 server.urlencode 的编码问题的解决方法。
实际上很简单,只要简单的修改下CodePage就可以了
如"菊花台 周杰伦"如果用utf-8来urlencode,得到的值是
%E8%8F%8A%E8%8A%B1%E5%8F%B0+%E5%91%A8%E6%9D%B0%E4%BC%A6
经过下面的编码转换以后得到的就是
%BE%D5%BB%A8%CC%A8+%D6%DC%BD%DC%C2%D7
http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=%BE%D5%BB%A8%CC%A8+%D6%DC%BD%DC%C2%D7&lm=-1musicWord="菊花台 周杰伦"
response.write server.urlencode(musicWord)
Session.CodePage=936
encodemusicWord = server.urlencode(musicWord)
response.write encodemusicWord
Session.CodePage=65001
response.write encodemusicWord
函数化一下:Function encodeUrl(paraString,Encoding1,Encoding2)
Rem 不同编码的urlencode函数
Rem Encoding1 程序使用的编码 utf-8=65001,GB2312=936
Rem Encoding2 需要得到的编码
Rem by fisker 07.02.07
Session.CodePage=Encoding2
encodeUrl = server.urlencode(paraString)
Session.CodePage=Encoding1
End Function
使用的时候test=encodeUrl("测试",65001,936)
好有成就感。阅读(4393) 分享(0)