DBF 파일이 shapefile에서 어떤 문자 인코딩을 사용합니까?


52

shapefile에서 dbf 파일이 사용하는 문자 인코딩은 무엇입니까? 프로그램과 컴퓨터의 로컬 인코딩 설정에 따라 다르게 처리되는 것 같습니다. 어떤 인코딩이 '올 바르고'-형식에 대해 지정 되었습니까?


alfonx에 응답 플래그를 반드시 부여해야합니다. @underdark 공격 없음!
JJD

답변:


60

원래 DBF 표준은 ISO8859-1 을 사용하고 ISO8859-1 만 사용하도록 정의합니다 . 따라서 표준에 맞는 Shapefile을 얻을 때 ISO8859-1이어야합니다. 물론,이 (매우 오래된) 제한은 오늘날 실제로 사용할 수 없습니다.

ArcGIS 및 Geopublisher, AtlasStyler 및 Geoserver는 표준을 확장하여 인코딩을 정의하기 시작했습니다. 예를 들어 ArcGIS의 경우 다른 Shapefile과 동일한 기본 이름을 가진 .cpg 파일을 생성하고 인코딩 이름으로 채 웁니다.

예를 들어, 텍스트 편집기로 myshape.cpg를 작성하고 "UTF-8"문자 5 개를 삽입 한 후 저장하십시오. 그런 다음 ArcGIS에서 Shapefile을 열면 해당 문자 세트에서 DBF의 텍스트 내용을 읽습니다.

Geoserver : Geoserver WFS는 모든 WFS 레이어를 압축 된 Shapefile로 내보낼 수 있습니다. 이 작업이 완료되면 .cst 파일이 zip 파일에 포함되어 .cpg 파일과 정확히 동일하게 수행됩니다.

주의 :이 모든 것은 열 이름이 아닌 데이터에만 적용됩니다. 다른 프로그램에서 파일을 열 수있게하려면 DBF의 열 이름에 ASCII 만 사용해야합니다.

힌트 : DBF의 인코딩을 변경하려면 OpenOffice Calc.에서 DBF를 엽니 다. 다른 이름으로 저장을 선택합니다. 왼쪽 아래에서 "필터 옵션"을 클릭하고 저장을 누릅니다. 그런 다음 텍스트 내용을 변환 할 인코딩을 정의 할 수 있습니다.


3
좋은 포스트! 사람들이 shapefile을 .cpg 파일과 함께 제공하면 세상이 더 나은 곳이 될 것입니다.
underdark

2
공식 문자 세트 인 ISO8559-1 문자 세트에 대한 참조가 있습니까? 내가 찾은 DBF 사양은 매우 짧으며 언급하지 않았습니다.
Chris

3
메시지가 표시되면 Base가 설치되어 있지 않은General input/output error 것입니다 . OpenOffice를 사용하든 LibreOffice를 사용하든 문제는 동일합니다.
JJD

2
OpenOffice / LibreOffice Calc 힌트는 +1입니다. 거기서 DBF 파일에 가정 된 인코딩이 있는지 확인할 수 있습니다. 그러나 JJD가 지적했듯이 우분투에서도 Calc에서 DBF 파일을 열려면 LibreOffice Base가 설치되어 있어야합니다.
Marian

1
.cpg파일은 libgdal 1.9으로도 QGIS에서 잘 작동하도록되어. 때로는 필요한 것 같습니다 : ssrebelious.wordpress.com/2012/03/11/…
krlmlr

11

"올바른"인코딩이 없다고 확신합니다. .dbf 파일은 어떤 인코딩으로도 가능하며 Shapefile을 열고 알고있는 경우 속성을 올바르게 읽을 수 있습니다.

ESRI 백서는 여기에서 찾을 수 있습니다 : http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf

나는 보통 shapefile이 UTF-8이거나 해당 국가의 로컬 (종종 라틴어 인코딩) 일 것으로 기대합니다.


7

인코딩에 대한 질문이 있으면 언제든지이 기사를 참조하십시오. http://www.joelonsoftware.com/articles/Unicode.html

그것이 말한대로 :

어떤 인코딩을 사용하는지 모른 채 문자열을 갖는 것은 의미가 없습니다. 더 이상 머리를 모래에 붙일 수 없으며 "일반"텍스트가 ASCII 인 것처럼 가장 할 수 없습니다.


바로 그거죠! 사람들은 내가 편집기 (np ++의 대부분)가 거친 추측을 취하기 때문에 내가 잘못된 인코딩으로 파일을 보냈다고 말해줍니다. +1
unicoletti

3

간단한 방법은 shp 파일을 csv 파일로 변환하는 것입니다. enca 또는 iconv를 사용하여 인코딩을 감지하십시오. UTF8 및 gb18030 파일로 시도했지만 작동합니다.


현재 인코딩을 파악하는 방법으로 답을 +1하십시오. 나는 질문이 표준 인코딩이 무엇인지 더 많이 찾고 있다고 생각합니다.
공간을

이 게시물은 또한 인코딩을 감지하는 방법에 대한 질문도 다루고 있습니다. gis.stackexchange.com/questions/12218/…
toms
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.