2016-10-17 1 views
1

Bis jetzt dachte ich dummerweise, dass JavaScript encodeURI() die gleichen Ergebnisse wie ASP classic Server.URLEncode() produzieren würde. Hier ist ein Beispiel, wo dies nicht möglich:Auflösen von Pausen zwischen JS encodeURI und ASP Server.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" 

Da ich in einem System, das ich beide Sprachen verwendet, gibt es eine Codierverfahren in einem, das garantiert die gleiche Codierung wie ein Verfahren, bei dem anderen zu produzieren?


(Anmerkung: Server.UrlEncode(str) ist angeblich gleichwertig HttpUtility.UrlEncode(str, Response.ContentEncoding))

+0

ich zu retten versuchte, das Ergebnis zu konvertieren, aber das javascript scheint falsch. http://meyerweb.com/eric/tools/dencoder/ – Vixed

+0

@Vixed - Sowohl das Werkzeug als auch [dieses Werkzeug] (http://www.cafewebmaster.com/online_tools/utf8_encode) stimmen mit dem JavaScript-Wert überein (dh der ein Anfang '% E6'). Wahrscheinlich, weil sie Javascript verwenden .... – feetwet

+0

** <% = server.UrlEncode ("戦 艦 帝国")%> ** gibt ** zurück% E6% 88% A6% E8% 89% A6% E5% B8% 9D% E5% 9B% BD ** Ich denke, es ist nur eine Frage von Zeichensatz. – Vixed

Antwort

1

Dies funktioniert für mich, aber sicher sein, mit 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> 
Verwandte Themen