html tag를 데이터베이스에 저장하기위해 특수문자를 변환해야 하는 경우가 발생합니다.  DB에 저장을 했으니 웹 페이지에 뿌릴때는 반대의 작업을 해야 하는데 이때 Spring을 사용한다면 특별히 라이브러리를 설치하지 않고도 변환이 가능합니다.

 

간단한 예제를 살펴 보면

import org.springframework.web.util.HtmlUtils;
 
        String tag ="<HTML> <table><tr><div> &";
        String esc = HtmlUtils.htmlEscape(tag);
        String uesc = HtmlUtils.htmlUnescape(esc);
 
        System.out.println("escape : " + esc);
        System.out.println("uescape : " + uesc);

 

이렇게 "<HTML> <table><tr><div> &” HTML 문서가 있는 경우 htmlEscape htmlUnescape 함수를 이용하면

 

escape : &lt;HTML&gt; &lt;table&gt;&lt;tr&gt;&lt;div&gt; &amp;
uescape : <HTML> <table><tr><div> &

 

이렇게 쉽게 변환이 가능 합니다.

 

만약 일반적인 특수 기호나 숫자, 알파벳을 변환하려고 하면 어떻게 될까요?

 

        String sTag = "( ) \\ [ ] { } ! @ $ % ^ * 1 2 3 A B C";
        String sEsc = HtmlUtils.htmlEscape(sTag);
        String sUesc = HtmlUtils.htmlUnescape(sEsc);
       
        System.out.println("escape : " + sEsc);
        System.out.println("uescape : " + sUesc);

 

escape : ( ) \ [ ] { } ! @ $ % ^ * 1 2 3 A B C
uescape : ( ) \ [ ] { } ! @ $ % ^ * 1 2 3 A B C

 

아쉽게도 아무런 변화가 없습니다.

 

 

그럼 escape 문자를 변환하면

 

String nTag = "&#40; &#41; &#92; &#91; &#93; &#123; &#125; &#49; &#50; &#65; &#66; ";
String nUesc = HtmlUtils.htmlUnescape(nTag);
              
System.out.println("escape : " + nUesc);

 

uescape : ( ) \ [ ] { } 1 2 A B

 

잘 변환이 됩니다.

 

그런데 굳이 일반 문자나 숫자를 변환할 일은 많지 않을것 같군요.

 

- copy coding -


+ Recent posts