헤르메스 LIFE

[Core Java] HTML entity 코드 변환 본문

Core Java

[Core Java] HTML entity 코드 변환

헤르메스의날개 2021. 3. 23. 00:41
728x90

 

한때 &#으로 시작하는 이상한 문자열을 가져다 붙여넣기 하라는 글이 있었고,
신기하게 붙여넣기 하면 한글로 변형이 되는 것이 있었다.
다 와 같이 &#으로 시작하는 문자를 html entity 라고 하는데
아래 코드는 이러한 html entity 코드를 변환하는 자바스크립트, 자바 소스이다.
 
자바스크립트 :
<script type="text/javascript">
  function decodeHtmlEntity(str){ 
   var textarea = document.createElement("textarea");  
   textarea.innerHTML = str;
  var result = textarea.value;
   textarea.parentNode.removeChild(textarea); 
  return result;  
 }
 alert(decodeHtmlEntity("&#45796") );
 </script>
 
자바 :
package foren2.utils.http;
public class HTMLEntityDecodeTest {
    public static String htmlEntityDecode( String s ) {
        int i = 0, j = 0, pos = 0;
        StringBuffer sb = new StringBuffer();
        while (( i = s.indexOf("&#", pos) ) != -1 && ( j = s.indexOf(';', i) ) != -1) {
            int n = -1;
            for (i += 2; i < j; ++i) {
                char c = s.charAt(i);
                if ('0' <= c && c <= '9') {
                    n = ( n == -1 ? 0 : n * 10 ) + c - '0';
                } else {
                    break;
                }
            }
            if (i != j) {
                n = -1; // malformed entity - abort
            }
            if (n != -1) {
                sb.append((char)n);
                i = j + 1; // skip ';'
            } else {
                for (int k = pos; k < i; ++k) {
                    sb.append(s.charAt(k));
                }
            }
            pos = i;
        }
        if (sb.length() == 0) {
            return s;
        } else {
            sb.append(s.substring(pos, s.length()));
        }
        return sb.toString();
    }
   
    public static void main( String[] args ) {
        System.out.println(HTMLEntityDecodeTest.htmlEntityDecode("&#51204;&#44592;&#50756;&#47308;"));
    }
}

실행결과

전기완료

 

728x90

'Core Java' 카테고리의 다른 글

[Core Java] 외부명령 실행하기  (0) 2021.03.23
[Core Java] QRCode 출력  (0) 2021.03.23
한글 Encoding 확인  (0) 2021.02.08
[Jackson] ObjectMapper, String to Map, to List, Object to JSON  (0) 2021.01.31
[Core Java] RequestMap 출력  (0) 2021.01.17