2023년 3월 24일 정보 갱신:

 

QGIS 가장 최신 LTR(Long Term Release) 버전인 3.28.4부터 Encoding에서 ms949를 선택해 DXF를 내보내시면 한글 깨지는 문제가 해결됩니다. ms949나 cp949나 이름만 다른 사실상 같은 한글 인코딩 방식입니다. 따라서 더 이상 아래 방식을 사용하지 마시고 가장 최신 QGIS를 사용하시기 바랍니다. 

 

 

 

***********************************

 

안녕하세요?

 

본 글에서는 QGIS 3.20.x 버전 이후 [프로젝트를 DXF로 내보내기] 메뉴에서 CP949 인코딩이 사라지는 문제를 우회적으로 해결하는 방법을 설명합니다. 이런 현상이 나타나게 된 기술적 원인과 해결에 대해서는 이 글과 별도로 QGIS 재단측과 논의할 예정입니다. 

 

여기에서 다루는 문제는 QGIS의 [프로젝트를 DXF로 내보내기]에서 발생하는 한글 인코딩 사라짐현상에 관한 것으로 한정합니다. QGIS에서 속성값이 ??? 같이 깨지는 문제는 그냥 레이어 속성에서 인코딩을 EUC-KR, MS949, CP949 등을 선택해 주면 해결됩니다. 

 

1. 해결 방법 
1.1 과거 버전 설치 

 

https://download.qgis.org/downloads/ 에 접속하면 과거의 QGIS 설치 파일을 내려받을 수 있습니다. 이중 exe로 끝나는 가장 최근 버전을 다시 설치하면 됩니다. 다만, 꼭 exe로 끝나는 설치파일만을 설치하시기 바랍니다. msi 버전의 설치 파일에서는 역시 CP949가 사라집니다. 현재 QGIS 저장소의 exe 설치 파일 중 가장 최근 파일인 QGIS-OSGeo4W-3.18.3-1-Setup-x86_64.exe 파일을 설치할 것을 권해 드립니다. 

 

 

msi 버전이 아닌 exe 버전의 QGIS 3.18.3 버전을 설치하고서 해당 메뉴를 살펴보면 아래와 같이 CP949가 나타남을 확인할 수 있습니다.

 

 

 

1.2 최신 버전의 QGIS DLL 직접 고치기 
QGIS DLL을 직접 수정해 QGIS 최신 버전의 모든 기능을 마음껏 쓰면서 CP949 인코딩을 추가하는 방법입니다.
이 작업이 그닥 어렵고 위험한 작업이 아닙니다만 우선 qgis_core.dll 원본을 안전한 곳에 잘 백업해 둡니다. 이는 수정한 qgis_core.dll에 문제가 생길 경우를 대비하기 위함입니다. qgis_core.dll은 보통 QGIS 설치 폴더 밑 apps\qgis\bin 폴더에 있습니다. QGIS 3.26 같은 경우 C:\Program Files\QGIS 3.26.0\apps\qgis\bin입니다. 

  • qgis_core.dll의 편집을 위해 [다운로드] 폴더 같은 곳으로 복사합니다. 
  • Be.HexEditor(https://sourceforge.net/projects/hexbox/) 같은 Hex Editor를 설치합니다. 참고로 Be.HexEditor는 별도의 설치 과정이 필요 없으며 bin 폴더 밑의 Be.HexEditor.exe를 바로 실행하면 됩니다. 
  • HexEditor로 qgis_core.dll을 열면 아래와 같은 화면을 볼 수 있습니다. 

 

  • 여기서 Ctrl+F로 CP949를 찾으면 아래와 같습니다. 좌측의 Hexa값에는 43 50 39 34 39을 보실 수 있을 것이고, 우측 문자열에서는 CP949를 보실 수 있습니다. 

 

  • 여기에서 우측 화면 문자열 CP를 바로 ms로 덮어써서 ms949가 되도록 입력합니다. 그러면 좌측 헥사값이 6D 73 39 34 39로 자동으로 변경될 것입니다. 

 

  • 이렇게 변경된 qgis_core.dll을 저장하고 원래 있던 apps\qgis\bin 폴더에 덮어쓰면 됩니다. 이후 QGIS를 실행하면 아래와 같이 [프로젝트를 DXF로 내보내기]에 ms949라는 인코딩이 뜨며 이걸 이용해 DXF를 내보내면 한글이 안 깨지고 잘 나가게 됩니다. 

 

 

2. 향후 계획

앞서 설명한 방법은 임시적 방법으로 근원적인 해결책이 되지 못 합니다. QGIS 재단과 이 문제에 대해 논의하여 빨리 근원적으로 문제가 해결되도록 시도하겠습니다. 

 

감사합니다. 

 

2022년 7월 16일
신상희 

 

덧붙여) 이글은 OSGeo  한국어 지부 블로그에도 함께 게시합니다. 

Posted by 뚜와띠엔
,