>  기사  >  웹 프론트엔드  >  js UrlDecode_Basic 지식의 escape에 해당하는 C# 디코딩 함수

js UrlDecode_Basic 지식의 escape에 해당하는 C# 디코딩 함수

WBOY
WBOY원래의
2016-05-16 17:46:231164검색

js System.Web.HttpUtility.UrlDecode(s)의 이스케이프에 해당하는 C# 디코딩 함수 //인코딩에 주의
몇 가지 참고 사항:
1 HttpUtility.UrlEncode, HttpUtility.UrlDecode는 정적 메서드입니다. Server.UrlEncode, Server.UrlDecode는 인스턴스 메서드입니다.
2. 서버는 HttpServerUtility 클래스의 인스턴스이자 System.Web.UI.Page의 속성입니다.
3. HttpUtility.UrlEncode로 인코딩된 문자열은 Server.UrlEncode로 인코딩된 문자열 개체와 다릅니다.
예:

코드 복사 코드는 다음과 같습니다.

string url="http://search.99read.com/index.aspx?book_search=all&main_str=欧米尔"; Response.Write(HttpUtility.UrlEncode(url));
Response.Write("
")
Response.Write(Server.UrlEncode(url))


출력 결과는 입니다: http://search.99read.com/index.aspx?book_search=all&main_str=AOMIER
http://search.99read.com/ index.aspx ?book_search=all&main_str=���GG�

원인: Server.UrlEncode의 인코딩 방법은 로컬 프로그램에서 설정한 인코딩 방법에 따라 인코딩되며, HttpUtility.UrlEncode는 기본 인코딩 방법입니다. .net UTF-8 형식으로 인코딩됩니다. 프로그램을 변경할 경우:

코드 복사 코드는 다음과 같습니다.
string url1=" http://search.99read.com/index.aspx?book_search=all&main_str=欧米尔";
Response.Write(HttpUtility.UrlEncode(url1,System.Text.Encoding.GetEncoding("GB2312) "))) ;
Response.Write("
");
Response.Write(Server.UrlEncode(url1));


출력 결과 : http://search.99read.com/index.aspx?book_search=all&main_str=���GG�
http://search.99read.com/index.aspx?book_search= all&main_str=�� � 아기
3. 때로는 다른 시스템에서 전달된 URL이 다른 인코딩 방법을 사용하여 인코딩될 수 있습니다.
지정된 인코딩 형식으로 QueryString을 얻기 위해 직접 작성한 메소드를 소개합니다.

코드 복사 코드는 다음과 같습니다.
공개 문자열 GetNonNullQueryString(문자열 키, 인코딩 인코딩 )
{
//참조 System.Collections.Specialized 및 System.Text 네임스페이스
string stringValue;
System.Collections.Specialized.NameValueCollection encodingQueryString;
encodingQueryString = HttpUtility.ParseQueryString(Request.Url.Query,encoding);
//'안에 있는 키는 제출한 매개변수의 키입니다.
return 인코딩QueryString[key] != null ? ].Trim() : "";
}


전화
: string url = GetNonNullQueryString("url",Encoding.UTF8).Trim() ; ------------------- -- -------------------

JavaScript에서 escape, encodeURI 및 encodeURIComponent의 차이점
JS 인코딩 텍스트에는 escape, encodeURI, encodeURIComponent라는 3가지 함수와 해당하는 3가지 디코딩 함수인 unescape, decodeURI, decodeURIComponent가 포함됩니다.
1 , 매개변수를 전달할 때 encodeURIComponent를 사용하면 결합된 URL이 #과 같은 특수 문자로 인해 잘리지 않습니다.
예:
2. URL 점프를 수행할 때 encodeURI를 전체적으로 사용할 수 있습니다.
예: 위치. href=encodeURI ("http://cang.baidu.com/do/s?word=Baidu&ct=21")
3. js에서 데이터를 사용할 때 이스케이프를 사용할 수 있습니다
[Huoho.Com 편집기]
예: 컬렉션의 역사 기록.
4. Escape가 0~255 이외의 유니코드 값을 인코딩하면 %u**** 형식이 출력됩니다. 그 외의 경우 Escape, encodeURI, encodeURIComponent의 인코딩 결과는 동일합니다.
가장 일반적으로 사용되는 것은 중국어, 한국어 및 기타 특수 문자를 utf-8 형식의 URL 인코딩으로 변환하는 encodeURIComponent입니다. 따라서 encodeURIComponent를 사용하여 매개변수를 백그라운드로 전달해야 하는 경우 이를 지원하기 위해 백그라운드 디코딩이 필요합니다. utf-8 (형식에서 인코딩 방식은 현재 페이지의 인코딩 방식과 동일합니다)
Escape로 인코딩되지 않은 문자는 69개입니다: *, , -, ., /, @, _, 0 -9, a-z, A-Z
encodeURI 숫자로 인코딩되지 않은 문자는 82개입니다:!,#,$,&,',(,),*, ,,,-,.,/,:,;, =,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent는 71자(!, ', (,), *, -, ., _, ~, 0-9, a-z)를 인코딩하지 않습니다. , AZ
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.