문자열을 HTML로 출력 할 때 이해하기 쉽도록 HTML 엔터티 ("& <>"등)로 특수 문자를 이스케이프해야합니다.HTML 엔터티가있는 문자열을 이스케이프 처리 할 때 UTF-8을 사용하면 유니 코드 127 위의 인코딩 문자를 안전하게 건너 뛸 수 있습니까?
나는이 두 가지 자바 구현을 조사했습니다 org.apache.commons.lang.StringEscapeUtils.escapeHtml (문자열) net.htmlparser.jericho.CharacterReference.encode (CharSequence를)
모두 모든 문자를 이스케이프를 모든 영어가 아닌 문자 인 Unicode 코드 포인트 127 (0x7F)보다 높습니다.
이 동작은 정상이지만 문자가 영어가 아닌 경우 (예 : 히브리어 또는 아랍어) 사람이 읽을 수 없습니다. 필자는 유니 코드 127 위의 문자가 이스케이프 처리되지 않았을 때 브라우저에서 올바르게 렌더링한다는 것을 보았습니다. HTML 페이지가 UTF-8로 인코딩되어 있기 때문에 이러한 문자가 브라우저에서 이해할 수 있다고 생각합니다.
내 질문 : 웹 페이지가 UTF-8로 인코딩 된 경우 HTML 엔티티를 이스케이프 할 때 코드 포인트 127 위의 유니 코드 문자를 안전하게 이스케이프 해제 할 수 있습니까?