아랍어 필드가있는 파일 GeoDataBase를 UTF-8 인코딩이있는 shapefile로 변환하는 데 사용 된 프로세스의 세부 사항 아래에서 QGIS와 ArcMap에서 행복하게 열리고 아랍어와 영어가 올바르게 표시됩니다 (확장을 사용하여 내보내거나 읽을 수 없음).
- 기본 아이디어는 FGDB에서 .dbf (잘못된 인코딩)를 포함하는 쉐이프 파일을 내 보낸 다음 텍스트와 동일한 레이어의 속성 테이블 (UTF-8 인 오른쪽 인코딩)을 내보내고 다른 프로그램을 사용하는 것입니다. shapefile .dbf의 내용을 적절한 UTF-8 데이터 필드로 바꾸고 .dbf를 UTF-8 인코딩으로 저장하십시오. 그런 다음 각 shapefile에 .cpg 파일을 추가하여 ArcGIS에 .dbf의 새 인코딩을 알립니다. 단계 :
1) FGDB의 레이어를 ArcMap에 추가하십시오 (10.1을 사용했지만 나중에 인코딩 비트가 Arc 외부에서 발생하기 때문에 이전 버전에서는 작동하지 않을 이유가 없습니다). 내보내려면 레이어를 마우스 오른쪽 버튼으로 클릭하고 데이터-> 데이터 내보내기를 선택하고 내보내기 대화 상자에서 폴더 버튼을 클릭하여 저장 대화 상자를 표시 한 다음 출력 파일로 Shapefile을 선택하십시오.
1b) 위의 대체 방법 : ArcCatalog에서 FGDB로 이동하여 마우스 오른쪽 버튼을 클릭하고 내보내기-> 셰이프 파일로 (다중)를 선택한 다음 전체 FGCB를 단일 작업으로 전체 셰이프 폴더로 내 보냅니다).
2) 이제 아랍어 스크립트가 있어야하는 곳에 횡설수설 한 셰이프 파일 세트가 있습니다 (내 기계에서는 문자 대신 물음표가 표시되었습니다). Excel에서 열거 나 모양 파일 자체의 .dbf 부분은 아랍어 대신 횡설수설합니다. GIS 프로그램의 표시 문제 일뿐만 아니라 .dbf 파일 자체에는 아라비아 문자가 포함되어 있지 않습니다. 아직 도움이되지 않았습니다.
3) ArcMap의 FGDB에서 레이어의 속성 테이블을 엽니 다. 표는 영어와 아랍어가 모두 올바르게 표시되어 열립니다 (먼저 FGDB가 사용 된 이유). 속성 테이블 창의 테이블 옵션 메뉴에서 내보내기를 선택하고 데이터 내보내기 대화 상자에서 출력 폴더 단추를 클릭하여 텍스트 파일을 출력 유형으로 선택하는 데이터 저장 대화 상자로 이동하십시오. 이제 영어와 아랍어가 올바르게 인코딩 된 UTF-8로 인코딩 된 쉼표 구분 기호와 함께 메모장에서 열리는 텍스트 파일이 있습니다 (이 시점에서 아랍어는 메모장에 올바르게 표시되어야 함).
이제 해당 정보를 shapefile의 .dbf 부분으로 가져 오십시오!
4) .dbf 파일을 쉽게 열고 조작하고 저장하여 shapefile의 .dbf 파일을 여는 무료 오픈 소스 Excel 복제 본인 LibreOffice Calc를 엽니 다.
그건 그렇고,이 경우 나는 이데올로기 적 이유로 MS Office 대신 LibreOffice를 사용하지 않지만 단순히 Excel에서 .dbf 파일을 저장하는 방법을 알 수 없기 때문에 Calc에서 쉽게 수행 할 수 있습니다. Calc에서 .dbf 파일을 열고 수정 한 후 저장을 누르면 기본 옵션 인 반면, Excel에서는 실제로 파일을 "현재 형식으로 저장할 수 없습니다"라고 말하고 "최신 형식으로 저장"할 수 있도록 도와줍니다 (.dbf에 대한 옵션이 나타나지 않습니다). 작업을 수행하기 위해 Excel 용 확장 프로그램 / 플러그인이 있습니다 (
Calc의 .dbf 파일은 여전히 아랍어 대신 횡설수설을 보여줍니다. Alonside와 동일한 shapefile의 속성 테이블에서 내 보낸 .csv를 열어서 열기 대화 상자에서 UTF-8을 인코딩 (및 쉼표를 구분 기호)으로 지정하십시오. 텍스트 파일은 아랍어가 올바르게 표시된 두 번째 Calc 스프레드 시트에서 열어야하며 .dbf와 동일한 열과 시작 부분의 OBJECTID 열을 포함해야합니다. 올바른 아랍어를 포함하는 .csv의 열을 .dbf에 복사하여 붙여 넣습니다 (시간을 절약하기 위해 가장 왼쪽의 ID 열을 제외하고 실제로 전체 테이블을 복사하여 붙여 넣었습니다. 정보는 동일합니다). LibreOffice의 수정 된 .dbf에서 저장을 누르십시오 (실제로 .dbf와 같은 이상한 형식을 사용할 것인지 묻습니다. 그렇습니다).
FGDB에서 shapefile의 모든 .dbf 구성 요소에 대해이 프로세스를 반복하여 모든 횡설수설 한 열을 아랍어 문자열로 바꿉니다.
5) 아랍어 열을 붙여 넣은 상태에서 .dbf 부분을 다시 저장하면 QGIS에서 모양 파일을 열 수 있으며 가져 오기 벡터에서 UTF-8을 인코딩으로 지정하면 두 언어 모두에서 제대로 작동합니다. 파일 대화 상자. 그러나 ArcGIS는 인코딩을 자동으로 인식하지 못하거나 모양 파일을 프로젝트에 추가 할 때 선택할 수 없기 때문에 ArcGIS (또는 적어도 모든 버전에서는 아님)에서는 여전히 제대로 작동하지 않습니다. Arc는 코드 파일 변환 (.cpg) 파일이라고하는 쉐이프 파일에 별도의 구성 요소가 있어야 읽을 인코딩을 지시합니다.
6) 텍스트 편집기 (메모장, 나노 또는 기타 단어 (Word 또는 다른 워드 프로세서 제외))를 사용하여 "UTF-8"문자 5 개만 포함 된 텍스트 파일을 만듭니다. 각 셰이프 파일에 대해 .cpg로 저장합니다 (다른 이름으로 저장 대화 상자에서 셰이프 파일의 조각을 클릭 한 다음 확장명을 지우고 .cpg를 추가하면됩니다). 여러 부분 모양 파일). .cpg 확장자는 Arc에게이 파일이 .dbf 파일의 인코딩에 대한 정보가 들어있는 파일임을 알려줍니다. 동일한 이름이지만 다른 확장 형제와 함께 모양 파일에 번들로 묶이면 모양 파일의 인코딩은 이제 ArcGIS에서 자동으로 인식됩니다.
7) 짜잔. 이제 원본 파일 GeoDataBase에있는 그대로 정확하게 말할 수있는 한 영어와 아랍어 문자열을 모두 포함하는 shapefile이 있습니다. 설치시 ArcMap과 QGIS 모두에서 열리고 두 경우 모두 두 언어의 문자열이 맵 레이블을 포함하여 올바르게 표시됩니다.
주의 사항 :
ArcGIS의 모든 사본이 속성 테이블을 적절하게 채워진 텍스트 파일로 내보내는 것처럼 보이지는 않습니다 (적어도 한 대의 컴퓨터에서 속성 테이블을 텍스트 파일로 내보내려고하면 데이터 라인이 아닌 헤더 만있는 파일이 생성됩니다). Arc의 올바른 동작은 아니지만 (물론 속성 테이블을 텍스트로 내보낼 수 있어야 함) 일부 사용자에게는 나타날 수 있으므로 나머지 단계는 불가능합니다.
ArcGIS가 UTF-8 인코딩으로 새 모양 파일을 저장하는 것처럼 보이지 않습니다. 이는 데이터를 표시, 수정 및 사용하여 맵을 작성하려는 사용자가 아니라 데이터에서 새 모양 파일을 작성하려는 사용자에게만 영향을줍니다. 해결 방법은 여기에 자세히 설명 된대로 Windows 레지스트리를 엉망으로 만드는 것 같습니다 ( http://support.esri.com/cn/knowledgebase/techarticles/detail/21106 ). ArcGIS와 QGIS는 위의 프로세스를 사용하여 저장 한 shapefile을 행복하게 인식하는 것처럼 보였으므로 지오메트리와 테이블 항목을 수정하거나 명백한 문제없이 더 많은 아랍어 텍스트로 새 다각형을 추가 할 수 있기 때문에 처리하지 않아도됩니다 ( Arc는 UTF-8 인코딩으로 새로운 쉐이프 파일을 저장하고 싶지는 않지만 업데이트 / 복원하려는 것 같습니다).
LibreOffice의 기능이 Windows의 컴퓨터와 동일하다고 가정합니다. 대부분의 작업에 GNU / Linux를 사용하고 일부 작업이나 다른 작업에 ArcGIS 또는 Autocad를 사용해야하는 경우에만 Windows로 부팅하므로 Fedora에서 실행되는 Libreoffice의 .dbf 파일을 수정했습니다. Windows에서 동일한 방식으로 작동한다고 가정하지만 Windows 파티션에 LibreOffice를 설치하지 않으면 테스트 할 수 없으며 현재 인터넷 연결이 불필요하게 다운로드하는 데 약간 느립니다. 선택한 인코딩 (예 : Exceltodbf.sourceforge.net/)으로 .dbf 파일을 저장할 수있는 Excel 용 플러그인이 있지만 시도하지 않았습니다. .dbf를 조작하고 저장하는 다른 방법이있을 수도 있지만 LibreOffice를 사용하여 합리적으로 쉬운 방법을 찾은 후에는 그 방법을 살펴 보지 않았습니다.
ArcGIS에서 Production Mapping 확장을 지불하면이 문제에 따라 UTF-8 인코딩을 사용하여 FGDB를 shapefile로 직접 변환 할 수 있습니다. http://resources.arcgis.com/en/help /main/10.1/index.html#//0103000001m1000000 . 이 기본 기능 (유니 코드는 한동안 사용되었으며 영어 이외의 많은 언어가 존재하는 이유)이 추가 비용을 지불하는 고객에게만 제공되는 이유는 ESRI에 대한 질문입니다.