html tag를 데이터베이스에 저장하기위해 특수문자를 변환해야 하는 경우가 발생합니다.
DB에 저장을 했으니 웹 페이지에 뿌릴때는 반대의 작업을 해야 하는데(DB에서 가져온 후 변환해서 웹 페이지 출력)
이때 Spring을 사용한다면 특별히 라이브러리를 설치하지 않고도 변환이 가능합니다.
예제를 살펴 보면 레스 댄 < 모어 댄>
특수문자 처리시 escape와 unescape를 사용해서 저장할 수 있습니다.
특히 에디터 같은걸로 꾸며진 데이터, 내용을 저장할 필요가 있을 때 유용합니다.
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 함수를 이용하면
결과는 다음처럼 나옵니다.
만약 일반적인 특수 기호나 숫자, 알파벳을 변환하려고 하면 어떻게 될까요?
변환되지 않습니다. < 와 > 만 변환됩니다.
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 문자를 변환하면어떻게 될까요?
변환이 잘됩니다.
데이터를 저장할 때 html 숫자코드로 저장하는것이 유용해 보입니다.
String nTag = "( ) \ [ ] { } 1 2 A B "; String nUesc = HtmlUtils.htmlUnescape(nTag); System.out.println("escape : " + nUesc); |