아�니 이 글자 왜 들어간 거예요? (2)
ockquote> 
‘아�니 이 글자 왜 들어간 거예요?’
제한재 데니어 CTO
- 아�니 이 글자 왜 들어간 거예요? (1)
- 아�니 이 글자 왜 들어간 거예요? (2)
이번 글에서는 물음표 발생 원인과 해결 방법에 대해 설명합니다.
문제 분석 - �가 들어가는 이유
알 수 없는 물음표 발생 원인을 분석합니다.
윈도우가 문제인가?: ‘euc-kr’

윈도우는 주로 euc-kr 인코딩을 사용하여 문자를 저장합니다. 이 표준은 약 2,350자의 한글만 포함해 전체의 20%에 불과하여 다양한 문제가 발생합니다.
인코딩 vs 문자표
인코딩은 문자를 저장하고 네트워크로 전송하는 방법이며, 문자표는 문자가 어떤 숫자에 대응하는지를 설명합니다.
한글 코드 표준화로 인한 문제 발생: KSC-5601 / euc-kr
euc-kr 표준화로 다양한 문제가 발생했습니다. 예를 들어, ‘서설믜’라는 이름은 해당 문자 범위에 없습니다.
cp949
euc-kr의 문제를 해결하기 위해 cp949 문자 셋이 등장했습니다. 그러나 이 방식은 가나다 정렬을 일관되게 유지하기 어렵습니다.
HTML에서의 euc-kr
euc-kr 페이지는 cp949로 표현되며, DOM의 textContent는 실제로 euc-kr로 처리됩니다.
UTF-8
UTF-8은 가변 길이로 텍스트를 표현하며, 한글을 보통 3바이트로 표현합니다. 자바스크립트는 UCS-2와 UTF-16을 사용합니다.
그렇다면 �는 뭘까?
물음표는 UTF에서 표현할 수 없는 문자를 나타내는 U+FFFD로, 글자가 깨졌음을 나타냅니다.
문제 해결하기
최종적으로 문제를 파악하고 백엔드 로직을 수정하여 문제를 해결했습니다.
마치며
이번 글에서 유니코드와 한글 저장 방식을 이해하고, 문제 해결 과정을 별도로 확인하시길 바랍니다.
- 아�니 이 글자 왜 들어간 거예요? (1)
- 아�니 이 글자 왜 들어간 거예요? (2)
해당 기사는 GPT를 이용하여 요약한 내용입니다.