Java
[Spring] java html tag 특수문자 escape 변환
카피코딩
2021. 12. 9. 00:01
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 : <HTML> <table><tr><div> & 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 = "( ) \ [ ] { } 1 2 A B "; String nUesc = HtmlUtils.htmlUnescape(nTag); System.out.println("escape : " + nUesc); |
uescape : ( ) \ [ ] { } 1 2 A B |
잘 변환이 됩니다.
그런데 굳이 일반 문자나 숫자를 변환할 일은 많지 않을것 같군요.
- copy coding -