0

안녕하세요. 내 게시물을 읽어 주셔서 감사합니다.Java에서 숫자 문자 참조로 문자열을 이스케이프 처리하는 방법

아파치 커먼즈 StringEscapeUtils.escapeHtml3()와 StringEscapeUtils.escapeHtml4() 함수는, 특히이 문자 엔티티 참조로 문자열 (A, E와 같은 ...) 급성으로 문자를 변환 할 수 있습니다 형식 &name; 여기서 name은 대/소문자를 구분하는 영숫자 문자열입니다.

는 어떻게 탈출 숫자 문자 참조 대신에 주어진 문자열의 문자열을 얻을 수 있습니다 (또는 & #xhhhh, & #nnnn nnnn은 십진수 형태의 코드 포인트이며, HHHH는 16 진수 형식의 코드 포인트입니다) ?

실제로 엔티티에 대해 모르는 XML 문서의 문자열을 이스케이프 처리해야합니다. & eacute; & agrave;

감사합니다.

답변

0

이 문제를 해결하기 위해 문자열을 인수로 사용하고이 문자열에서 문자 엔터티 참조 (예 : é)를 해당 숫자 문자 참조 (이 경우 é)로 바꾼 메서드를 작성했습니다.

나는 참고 문헌이 W3C 목록을 사용 : http://www.sagehill.net/livedtd/xhtml1-transitional/xhtml-lat1.ent.html

의 Nota : 우리가에서 문자 엔티티 참조 또는 숫자 문자 참조를할지 여부 말할 수있는 StringEscapeUtils.escapeHtml4() 방법에 또 다른 인수를 전달할 수있는 것은 좋은 것입니다 그것을

CharacterTranslator XML_ESCAPE = StringEscapeUtils.ESCAPE_XML11.with(
    NumericEntityEscaper.between(0x7f, Integer.MAX_VALUE)); 

및 사용 : 출력 문자열 ...

0

CharacterTranslator 만들기

XML_ESCAPE.translate(…) 
관련 문제