2012-01-18 4 views
3

이것은 어리석은 질문 일 수 있습니다. 그러나 매번 나를 괴롭 힙니다.사용할 HttpUtility 디코드 방법은 무엇입니까?

HttpUtility은 방법이 HtmlDecodeUrlDecode입니다. 이 두 메소드는 내가 찾은 것 (Html ​​/ Http 관련)을 디코딩합니까? 언제 사용해야합니까? 그리고 어느 것을 사용해야합니까?

지금은 오류가 발생했습니다. 내가 그것을 사용하기 전에 HttpUtility.HtmlDecode 여기에 이메일 주소를 감싸,

Payment receiver was not [email protected] (it was payment%40mysite.com). 

그러나이 내 오류 로그입니다. 대신 .UrlDecode을 사용해야하지만,이 이메일 주소는 URL에서 오지 않았으므로 나에게 분명하지 않았습니다.

누군가가이를 명확히 할 수 있습니까?

+0

이 콘텐츠는 GET 요청에서 비롯 되었습니까?(AJAX 등 URL을 볼 수는 없지만 여전히 GET 요청입니다.) – Rolice

답변

3

그것은 당신의 케이스의 역의 What is meant by htmlencode and urlencode?를 참조하지만, 기본적으로 당신은 당신이 종류 (URL 및 예, 이메일 주소)의 주소를 사용하고를 UrlEncode/디코드 언제든지 사용할 필요가있다. HtmlEncode/디코드는 일반적으로 브라우저가 렌더링하는 코드입니다 (html/xml 태그).

2

이 동일한 인코딩은 POST POST 요청에도 사용됩니다.

내 생각에 뭔가 해독하지 않고 '알몸'으로 읽습니다.

Html 인코딩/디코딩은 html 제어 문자로 해석 될 수있는 문자가 포함 된 문자열을 이스케이프하는 경우에만 사용됩니다. 이 프로세스는 문자를 HTML 엔티티로 변환하고 다시 표시합니다.

Url 인코딩은 많은 문자가 Uris에 허용되지 않는다는 사실을 잊어 버리는 것입니다. 또는 너무 오해 할 수 있기 때문입니다. 따라서 인코딩 비율이 사용됩니다.

인코딩 비율은 HTTP 요청 본문에도 사용됩니다.

물론 두 경우 모두 문자 집합과 관계없이 요청/응답에 특정 문자 코드를 표현하는 방법이기도합니다. 그러나 동일하게, 특정 코드가 의미하는 바를 해석하는 것은 특정 문자 세트를 아는 것에 달려있을 수도 있습니다. 일반적으로 걱정할 필요는 없지만 (특히 HTML의 경우) 중요 할 수 있습니다.

+0

이러한 종류의 인코딩은 URL 및 POST 요청 또는 다른 곳에서만 사용됩니까? – Oliver

+0

잘 어디서든 사용할 수 있지만 URL, URI 및 URN에서 가장 일반적으로 사용됩니다. 마찬가지로, HTTP를 피기 백하는 다른 프로토콜은 당연히 퍼센트 인코딩을 사용할 수 있습니다. –

2

이 표시되면 percent encoding이 발생했음을 의미합니다. 이는 URL 인코딩 체계이므로 UrlEncode/UrlDecode을 사용해야합니다.

HtmlEncodeHtmlDecode 및 방법은 HTML 디스플레이 부호화 및 복호화 요소이다 - & 같은 것들이 >&>로 인코딩되도록 얻을.

2

URLEncode는 URL에 허용되지 않는 문자를 URL로 분석 할 수있는 문자로 변환합니다. 귀하의 예에서 @는 % 40이되었습니다. URLDecode가이를 취소합니다.

HTMLEncode는 URLEncode와 유사하지만 대상 환경은 HTML 내부에 텍스트 중첩입니다. 이렇게하면 브라우저가 콘텐츠를 HTML로 해석하는 데 도움이되지만 렌더링 할 때 디코딩 된 버전처럼 보일 것입니다. HTMLDecode는 이것을 역전시킵니다.