解决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)
)
答
这对我的作品,但一定要使用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>
我试图将结果转换为保存,但JavaScript似乎错了。 http://meyerweb.com/eric/tools/dencoder/ – Vixed
@Vixed - 这个工具和[这个工具](http://www.cafewebmaster.com/online_tools/utf8_encode)都匹配javascript值(即,一个开始'%E6')。可能是因为他们使用javascript .... – feetwet
** **返回**%E6%88%A6%E8%89%A6%E5%B8% 9D%E5%9B%BD **我认为这只是一个字符集问题。 – Vixed