2012-06-21 6 views
2

나는 데이터를 제출 후 방법을 사용하고 난 데이터의 URL 인코딩에 대한 URL 인코딩 방법은

HttpUtility.UrlEncode(string data) 

을 사용했다. 그러나 특정 문자열의 경우 서버 측의 데이터가 제출 된 것과 다른 것으로 표시됩니다.

EX는 :

string data = "¦=¦=¦"; 
data = HttpUtility.UrlEncode(data); 

서버에 데이터를 제출 한 후에는 Â| = Â| = Â|와 같은 문자열을 표시하지만 원래 문자열은 이었다 | = | = |. 인코딩 된 URL 난 즉 "("인코딩 할 사용해야

그리고 28 %에을 ")"을 29 %. 나는 이것을 발견 할 수있다.

또한 HttpUtility.UrlEncodeUnicode, HttpUtility.UrlPathEncode를 사용했지만 작동하지 않습니다. URL 인코딩이이 유형의 문자열에 적합합니까?

답변

1

코드 예에서 char "|"에 ASCII를 사용하고 있는데이 문자는 유효한 ASCII 문자가 아닙니다. 유니 코드를 사용하면 효과가있을 수 있습니다.

System.Text.UnicodeEncoding uni = new UnicodeEncoding(); 
byteArray = uni.GetBytes(data); 
+0

|이 유효한 ASCII의 문자 아니다 "". 유니 코드를 사용하면 효과가있을 수 있습니다. – retslig

+0

업데이트 된 질문이 있습니다. – Prince123

+0

아니요 작동하지 않습니다. – Prince123

2

사용 HttpUtility.UrlDecode (데이터)로 돌아 가야합니다 "| = | = |"

당신은 문자에 대한 ASCII를 사용하는
+0

어떻게 제출 한 후 서버 측에서 해독 할 수 있습니까? – Prince123

+0

각 측면에서 인코딩을 동일하게 유지하는 것이 좋습니다 예 : string data = "| = | = |"; data = HttpUtility.UrlEncode (data, Encoding.UTF8); 문자열 dataOnServerSide = HttpUtility.UrlDecode (data, Encoding.UTF8); – HatSoft

+0

사용자 지정 HttpHandler 만들기를 사용하면 서버 쪽에서 디코딩 할 수 있습니다. http://msdn.microsoft.com/en-us/library/bb398986.aspx – HatSoft