解决JS encodeURI和ASP服务器之间的分歧.URLEncode

问题描述:

直到现在我愚蠢地认为JavaScript的encodeURI()会产生与ASP经典的Server.URLEncode()相同的结果。这里就是失败的例子:解决JS encodeURI和ASP服务器之间的分歧.URLEncode

encodeURI("戦艦帝国") = "%E6%88%A6%E8%89%A6%E5%B8%9D%E5%9B%BD" 
Server.URLEncode("戦艦帝国") = "%C6%88%A6%C8%89%A6%C5%B8%9D%C5%9B%BD" 

由于我在使用两种语言,有没有一个任何编码方法,它是保证产生相同的编码作为其他方法的系统?


(注:Server.UrlEncode(str)是假想相当于HttpUtility.UrlEncode(str, Response.ContentEncoding)

+0

我试图将结果转换为保存,但JavaScript似乎错了。 http://meyerweb.com/eric/tools/dencoder/ – Vixed

+0

@Vixed - 这个工具和[这个工具](http://www.cafewebmaster.com/online_tools/utf8_encode)都匹配javascript值(即,一个开始'%E6')。可能是因为他们使用javascript .... – feetwet

+0

** **返回**%E6%88%A6%E8%89%A6%E5%B8% 9D%E5%9B%BD **我认为这只是一个字符集问题。 – Vixed

这对我的作品,但一定要使用UTF-8

<%Response.charset="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8" /> 
    </head> 
    <body> 
    <%=Server.UrlEncode("戦艦帝国")%> 
    <br /> 
    <script>document.write(encodeURI("戦艦帝国"))</script> 
    </body> 
</html>