Utility 네임 스페이스 안에 있는 수많은 Utility 중에서 또 하나 기가 막히게 자주 쓰는 도구가 있으니 바로 Encoder 다. 언어별 Encoder는 아니고, URL과 HTML에 대한 Encoder다.
간혹 HTML 내용이 있을 때, HTML 소스 그대로를 출력해주어야 할 때가 있다.
그렇다고 우리가 번역하기엔 그 내용도 만만치 않고 귀찮다. 그 때 해주는 Encoder가 아래와 같다.
string Microsoft.SharePoint.Utilities.SPEncode.HtmlEncoder(원본 HTML이 담긴 string 내용)
위의 메소드를 쓰면 < 같은 것이 < 이런식으로 바꿔 주게 된다. 거기서 Encoding된 내용을 웹브라우저에서 보면 <로 바뀌어 보이게 된다.
역으로 Encoding 된 것을 바꿔주는 것이 아래이다.
string Microsoft.SharePoint.Utilities.SPEncode.HtmlDecoder(원본 HTML이 담긴 string 내용)
두번째는 URL 인코더다.
간혹 URL을 통해 GET 메소드에 사용할 값을 넘겨 줄떄가 있다. 그 때 URL 내에 이상한 문자가 들어가면 안되는 경우가 있다.
예를 들어 "http://www.hind.pe.kr/test.php?value1=크크크 호호호호&value2=I&you" 라는 URL이 있을 때 value1에는 한글 가득한데다 그 안에 공백 문자가 있고, Value2에는 I와 you 사이에 & 이라는 문자가 있다. 이러면 명백한 오류. 그러나 그 값들은 꼭 넘어가야 한다고 할때... 처리해 주는 도구가 바로 아래이다.
string Microsoft.SharePoint.Utilities.SPEncode.UrlEncoder(원본 값이 담긴 string 내용)
저것을 사용하면 크크크 호호호호 라는 값이 #FF02#F022..... 형태로 바뀌는 것을 볼 수 있을 것이다. ( 간혹 아예 value1=크크크 호호호호 라는 것을 통채로 인코딩하시는 분들이 있는데 그건 오해이자 막가는 것이다. 크크크 호호호호 만 인코딩 해줘야 한다. )
물론 이 역함수는 아래와 같다.
string Microsoft.SharePoint.Utilities.SPEncode.UrlDecoder(원본 값이 담긴 string 내용)
하나씩 하나씩 진기로운 도구들이 숨겨져 있어서 나름 재미를 뽐내는(?) SharePoint 인것 같다.
P.S 사실 알고 보면, .NET Framework 내에서도 위와 같은 작업을 해주는 Method들이 있다.