Escape HTML

Posted by Eun JongHyeok on August 18, 2021
  1. 개요
  2. 방법
    1. 직접 간단한 함수를 만들어 처리
    2. 안드로이드에서 제공하는 Html 라이브러리를 사용
  3. Reference

개요

HTML에서 특수 처리되는 문자가 포함된 문자열을 웹뷰등에 그대로 사용할 경우 html 문자라 판단되어 잘못된 처리를 하거나 오류가 날 수 있음

방법

직접 간단한 함수를 만들어 처리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static String escapeHTML(String s) {
    StringBuilder out = new StringBuilder(Math.max(16, s.length()));
    for (int i = 0; i < s.length(); i++) {
        char c = s.charAt(i);
        if (c > 127 || c == '"' || c == '\'' || c == '<' || c == '>' || c == '&') {
            out.append("&#");
            out.append((int) c);
            out.append(';');
        } else {
            out.append(c);
        }
    }
    return out.toString();
}

안드로이드에서 제공하는 Html 라이브러리를 사용

1
String str = Html.escapeHtml(text);

두 방법의 결과가 다르게 나오긴 하지만 동작하는데는 아무런 문제가 없음

예를 들어 < 를 라이브러리에서는 &lt; 로 변환 하지만 간단히 만든 함수에서는 해당하는 정수값이 들어옴

Reference

http://www.javapractices.com/topic/TopicAction.do?Id=96

https://developer.android.com/reference/android/text/Html#escapeHtml(java.lang.CharSequence)

http://daplus.net/java-java에서-html을-이스케이프-처리하는-데-권장되는-방법/


String
HTML

← Previous Post