-
[IntelliJ 디버깅] springboot, message.properties의 값이 읽히지 않는 문제Spring Boot/인텔리제이 2023. 7. 2. 01:17
0. message.properties의 값이 읽히지 않는 문제 해결
- 아래와 같이 error 메시지를 선언하고 MessageSource 인터페이스로 메시지를 불러오는 작업을 하던 중
- 한글이 ???.???.??? 와 같이 출력되는 버그를 수정한 내용을 정리
Size.writeTodoCommand.title=할 일은 {2}-{1}자 사이로 작성해주세요. Exception.TodoEntityNotFoundException=요청한 할 일을 찾을 수 없어요. (일련번호: {0}) Exception.MethodArgumentNotValidException=입력 값이 없거나 올바르지 않아요.
- 이는 인코딩 문제로 아래의 설정을 해준다.
1. 인텔리제이 properties file 인코딩 설정
- Default encoding for properties files의 인코딩 설정을 UTF-8로 변경한다.
인텔리제이 설정창 cmd + , 2. 컴파일시 인코딩 옵션 추가
- build.gradle에 인코딩 설정 추가 UTF-8로 변경한다.
tasks.withType(JavaCompile) { options.encoding = 'UTF-8' }
3. UTF-8 인코딩이란?
컴퓨터는 0과 1만 인식한다.
그래서 문자, 그림, 음악을 숫자로 표현하고 이 숫자를 0과 1로 변환하는 과정을 거친다.
0과 1 (즉 이진데이터)로 변경하는 이 작업을 인코딩이라 한다.
UTF-8은 인코딩 방식중 하나이다.
컴퓨터에서 문자 인식 방식
- ACSII 코드 → 영문자를 숫자로 표현
- 255개 문자
- 왜 255개? 8 bit (1byte)로 표현할 수 있는 숫자 (256개 0까지해서 0~255)
- UNICODE
- 2 byte ~ 4byte로 인간의 모든 문자를 표현
- UTF-8은 유니코드 문자를 나타내는 방법 중 하나
- UTF-8은 ASCII 문자(영어 알파벳, 숫자, 일부 특수 문자)를 그대로 8비트로 인코딩하고, 다른 문자들은 2바이트에서 4바이트까지 가변 길이로 인코딩
- 예를 들어, 영어 알파벳 'A'는 ASCII 문자로 1바이트로 표현되지만, 한글 '가'는 UTF-8에서는 3바이트로 표현
Reference
반응형'Spring Boot > 인텔리제이' 카테고리의 다른 글
IntelliJ 테스트 관련 Live Template 생성하기 (4) 2024.11.10 2025 인텔리제이 추천 플러그인 (recommended intellliJ plugin) (0) 2024.11.10 인텔리제이 통계 기능으로 개발 생산성 올리기 (0) 2024.06.19 [IntelliJ 필수 코드 스타일 설정] 와일드카드 * import disable, imports 자동 정리, Imports Fold 비활성화 (0) 2023.08.14