ArcGIS 10.2.x/10.3 이상 버전에서 Desktop 쉐이프 파일의 속성 테이블 값 오류현상 (한글 깨짐 등) 문제 해결 방법
특정 언어 로캘(한국어) 설정을 가지는 ArcGIS 10.3 이상 버전에서 쉐이프파일을 생성 할 때
속성 테이블 값이 절단되거나 한글이 깨지는 등의 다음과 같은 오류 메시지가 나타나고 있습니다.
“Failed to add the field to the table /Feature class. The field type is invalid or unsupported for the operation.”
이 문제는 아래의 NIMs 와 관련이 있습니다.
· NIM100355 – 쉐이프파일의 필드 이름에 일본어가 포함된 경우 에러 메시지 발생:
“Failed to add the field tothe table /Feature class. The field type is invalid or unsupported for the operation”.
· NIM100357 –레지스트리에서 코드 페이지를 설정해도 쉐이프파일에 사용되는 코드 페이지가 제대로 변경되지 않음
· NIM098820 -10.2 버전에서 생성된 쉐이프파일이 10.2.1 버전에서 사용되고 내보내기를 수행한 하면 가장 마지막 필드의 값들이 사라짐
원인
쉐이프파일을 ArcGIS 10.2 이하 버전에서는 생성할 때는 사용하는 시스템의 언어 로캘로 인코딩 되었습니다.
10.2.1 버전부터는 쉐이프파일을 UTF-8 로 인코딩 하고 있으며 이는 한국어, 일본어, 러시아어, 중국어 등 멀티바이트 문자 인코딩을 하는 시스템에서 문제가 되고 있습니다.
문제가 일어나는 이유는 쉐이프파일의 문자열 길이를 문자 단위가 아닌 바이트로 측정하기 때문입니다.
UTF-8 에서 쉐이프파일 필드 이름의 길이를 10 문자로 제한하고 있는데 이것이 실제로는 10 바이트가 된 것입니다.
예를 들어, 한글 문자는 문자 당 3 바이트를 필요로 하기 때문에, 쉐이프파일 필드 이름은 최대 문자 세 개를 가질 수 있습니다.
텍스트 필드 역시 문제가 되는데 이것이 3 바이트로 제한되어 있기 때문에 한글 한글자만 가능하게 됩니다.
내보내기 하면서 잘려나간 문자 자리에는 별표(*)가 나타나는 것을 볼 수 있습니다.
해결 방법
[방법 A]
ArcGIS Desktop 10.3 버전 이상 또는 ArcGIS Pro는 웹문서 하단의 첨부파일을 다운로드 받아 설치해 주시기 바랍니다.
1) 파일명: ArcGIS Desktop 및 ArcGIS Pro_EUC-KR.zip.을 다운로드
2) 압축파일을 풀고, 사용하실 제품 및 버전에 맞는 .reg 파일 더블 클릭
3) “이 앱이 디바이스를 변경할 수 있도록 허용하시겠어요?”라는 사용자 계정 컨트롤 창이 나타나면 예 클릭
4) 레지스트리 편집기 경고 메시지가 나타나면 예 클릭
5) 확인
다음과 같은 메시지가 나타나면, 레지스트리 키 및 값 추가가 완료된 것입니다.
파일 다운로드 설치가 불가능할 경우, [방법 B]를 적용하실 수 있습니다.
[방법 B]: 직접 레지스트리 키를 편집
‘EUC-KR’ 값을 가진 문자열을 추가합니다.
(“다양한 코드 페이지로 인코딩된 쉐이프파일 과 dBASE 파일 읽고 쓰기”에서 발췌)
1) 시스템 레지스트리에 ‘Common’ 과 ‘CodePage’ 두 키를 추가합니다.
키를 추가하려면:
1-1) 시작 > 실행 클릭 후 ‘regedit’ 입력하고 확인을 클릭
1-2) 왼쪽 창에서 컴퓨터\HKEY_CURRENT_USER\Software\ESRI 에 있는 ‘Desktop 10.x’ 레지스트리 키를 클릭.
Pro 의 경우 Pro 1.x버전 이용 시 ‘ArcGISPro1.0’ 레지스트리 키, Pro 2.x 버전 이용시 ‘ArcGISPro’레지스트리 키를 클릭.
(9.3.1 이전 버전에서는 컴퓨터\HKEY_CURRENT_USER\Software 에 있는 ESRI 레지스트리 키를 클릭)
1-3) ‘Common’ 이라는 키를 새로 만듦 (편집 > 새로 만들기 > 키 클릭, ‘Common’ 입력 후 Enter 키 누름)
1-4) 새로 생성된 Common 레지스트리 키를 클릭하고 ‘CodePage’ 라는 새 키를 생성
2) CodePage 키에 ‘dbfDefault’ 문자열 값 생성
문자열을 추가하려면:
2-1) CodePage 클릭
2-2) 편집 > 새로 만들기 > 문자열 값 클릭
2-3) ‘dbfDefault’ 입력 후 Enter 키 누름
3) 코드 페이지 값 입력
3-1) dbfDefault 문자열 값 클릭
3-2) 편집 > 수정 클릭
3-3) 값 데이터 에 ’EUC-KR’ 입력후 확인 클릭
[방법 C]: ArcGIS 10.2x 버전일 경우
ArcGIS 의 로컬 버전에 맞는 코드 페이지 패치를 다운로드 후 설치합니다.
• ArcGIS 10.2.1 (Desktop, Engine, Server) Set Shapefile Default Code Page Patch
• ArcGIS 10.2.2 (Desktop, Engine, Server) Set Shapefile Default Code Page Patch
안내된 방법으로 ArcGIS Desktop 10.2 ~ 10.8 버전과 ArcGIS Pro 1.0 ~ 2.5 버전에서의 인코딩 문제를 해결 할 수 있습니다.
10.2 버전에서의 해결 방법과 10.3 이상 버전에서의 해결방법이 다르므로 아래의 첨부파일을 확인하시어
해당 버전에 맞는 해결 방법을 확인해보시기 바랍니다.
감사합니다.
끝.
참고자료
– Problem: Exported shapefiles have truncated character strings in ArcGIS 10.2.x
http://support.esri.com/en/knowledgebase/techarticles/detail/42646
– HowTo: Read and write shapefile and dBASE files encoded in various code pages
http://support.esri.com/en/knowledgebase/techarticles/detail/21106