[ 목차 ]
웹단에서 DB 로 한글을 입력하니 하단과 같이 한글이 변환되는 문제점이 있었다.
해당 DB에서 다른 테이블에는 한글이 잘 들어가는데 왜 해당 테이블에 값을 넣으면 문제가 발생하는지 당황했다.
확인한 내용은
1. DB 문자 인코딩 정보였다. -> 문제 없이 AL32UTF8 로 한글 사용에 문제가 없었다. 당연히 다른 테이블에는 입력이 잘 가능했기 때문에 혹시 몰라 확인을 하였다.
2. 페이지 소스 코드 문자 인코딩 설정을 확인하였다. 코드 상단에
<%@ page contentType="text/html;charset=UTF-8"%>
추가하여 페이지의 문자 인코딩을 명시적으로 UTF-8로 설정되었는지. 브라우저가 페이지를 올바르게 해석할 수 있는지 확인하였다. 잘 작성이 되어있었다.
3. 톰켓의 경우 server.xml에서 기본 인코딩을 확인했더니 이도 정상적으로 설정이 되어있었다.
<Connector URIEncoding="UTF-8" ... />
4. 최종적으로 코드를 다시보니 서블릿 필터 메서드로 응답, 요청 사용이 안되어 있었다.
request.setCharacterEncoding("UTF-8");
이를 사용하여 요청 및 응답의 인코딩을 강제로 UTF-8로 설정할 수 있는데 나는 상단에 인코딩을 설정하면 되는 경우가 자주 있어서 아무생각이 없었다.
찾아보니 서블릿 필터를 사용하여 인코딩을 설정하는 것은 모든 요청과 응답이 지정된 인코딩으로 처리되도록 보장하는 것이다. 이는 애플리케이션의 여러 곳에서 중복되는 코드를 방지하고, 일관된 처리를 보장하여 코드 유지보수와 확장성을 향상시키는 데 도움이 된다.
다양한 방법들이 있는데 그 중 예로 작성한 필터 클래스를 web.xml에 등록하고, 어떤 URL 패턴에 대해 필터를 적용할지 지정하는 방법들이 있다.
https://hunseop2772.tistory.com/282
'Error' 카테고리의 다른 글
Oracle 데이터베이스 컬럼 조회 시 발생하는 ORA-00904 에러 해결하기 (3) | 2024.11.07 |
---|---|
Data too long for column 장애 처리 과정 (1) | 2023.12.07 |
[Error] no primary or single unique constructor found for interface java.util.li (0) | 2023.07.24 |
[Error] ORA-01745 (0) | 2023.07.23 |
[Error] ORA-00923 (0) | 2023.07.22 |