2016-10-17 42 views
1

直到現在我愚蠢地認爲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

** <%= server.UrlEncode(「戦艦帝國」)%> **返回**%E6%88%A6%E8%89%A6%E5%B8% 9D%E5%9B%BD **我認爲這只是一個字符集問題。 – Vixed

回答

1

這對我的作品,但一定要使用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> 
相關問題