Entity 문자

Entity 문자가 표시될 때


Entity 문자라 하면 HTML에서 코드로 인식될 특수문자를 입력할때 쓰는 문자다. 자주 쓰는 것으로  가 있다.
게시글이라든가 간혹 특수문자를 입력받는 경우가 있다. 무슨 특수 문자? 라고 생각들지 모르겠지만 강조하기 위해 ‘‘을 쓰는 유저도 있다. 그러면 특수문자는 DB에 Entity 문자로 변환되어서 저장된다. 그리고 그걸 그대로 화면 view인 jsp에서 조회해 표시하면 Entity 문자(‘‘을 썼다면 ‘ ’) 그대로 나오는 경우가 있다.
이 때 어떻게 하면 좋을까?
일단 크롬 개발자 디버깅 창을 열어 Entity 문자가 출력하는 부분을 찾는다. 그리고 jsp 파일에서 Entity 문자를 출력 부분을 찾는다. 아마 jstl 으로 반복 출력하는 부분일 것이다. 아래와 같이 escapeXml="false"를 추가해준다.

<c:out value="${resultMap.context}"  escapeXml="false"/>

escapeXml는 jstl에서 해당 내용중에 Entity 문자로 변환될만한 것이 나오면 Entity 문자로 변환해주는 함수이다. 보통 default로 true로 설정되어 있다. 그러므로 false라고 직접 설정함으로써 Entity 문자 변환을 막아주는 것이다.
참고로 화면 출력에 문제가 있으면 DB보다 jsp에서 고칠 방도를 찾는게 좋다. 일단 DB의 sql문을 고치면 서버에 적용시 서버를 내렸다 올려야하는 부담도 있고, DB는 일반적으로 일괄적으로 데이터를 불러오는데에 특화에 특화되어 있으므로 제어하는 게 까다롭기 때문이다.






© 2021.11. by 21thkafka

Powered by 21thkafka