[Android / Kotlin] HTML 태그 사용자 직접 입력에 대한 예외 처리

2025. 3. 4. 10:32· Today I Learn
반응형
memoText.text = Html.fromHtml(timeBlock.description?.replace("\n", "<br>"))

- 위와 같은 코드가 존재한다. Html.fromHtml()을 사용하여 HTML 태그를 포함한 문자열을 Spanned 형태로 변환하여 TextView에서 HTML 렌더링을 할 수 있게 하는 코드이다.

 

- replace("\n", "<br>")를 통해 개행(\n)을 <br> 태그로 변환하여 HTML에서 줄 바꿈을 유지하도록 한다.

 

- 그런데, 사용자가 만일 EditText에 <제목> 이런식으로 입력해 버리면 통째로 사라져 버린다. 그래서 입력된 <, > 문자를 HTML 엔티티로 변환하는 과정이 필요하다.

 

fun fromHtmlSafe(source: String?): Spanned {
    val safeText = source?.replace("<", "&lt;")?.replace(">", "&gt;")
    return Html.fromHtml(safeText?.replace("\n", "<br>"), Html.FROM_HTML_MODE_LEGACY)
}

- 사용자가 <제목>를 입력해도 HTML 태그로 해석되지 않음.

 

- <내 생일!> → &lt;내 생일!&gt;로 변환되어 그대로 화면에 출력됨.

 

- 개행(\n)은 <br> 태그로 변환하여 줄바꿈 유지.

반응형
저작자표시 (새창열림)
'Today I Learn' 카테고리의 다른 글
  • [Kotlin Coroutine] async를 사용한 동시성. API 호출 결과를 합산
  • YIQ 개념 기반 밝기 판별
  • [Android] getIdentifier() 활용 앱 리소스 가져오기
  • Android - 외부 웹뷰가 아닌 인앱 웹뷰 기반 접근 처리 (간단)
SeungYong.Lee
SeungYong.Lee
반응형
SeungYong.Lee
Win-Dev
SeungYong.Lee
전체
오늘
어제
  • All (230) N
    • Development (130) N
      • Android (126) N
      • iOS (0)
      • Flutter (4)
      • Backend (0)
    • Algorithm (5)
    • Knowledge (5)
      • IT (2)
      • Science (0)
      • ETC & Tip (3)
    • Today I Learn (28)
    • Coding Test (62)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 안녕하세요. 반갑습니다 :)

인기 글

태그

  • coroutine
  • 코틀린
  • 코딩테스트
  • exception
  • Imageview
  • HTTP
  • compose
  • dfs
  • Java
  • Animation
  • Collection
  • hilt
  • 프로그래머스
  • Widget
  • glance
  • 비동기처리
  • Retrofit
  • Android
  • Flutter
  • Kotlin

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
SeungYong.Lee
[Android / Kotlin] HTML 태그 사용자 직접 입력에 대한 예외 처리
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.