Shapefile 데이터 소스 인코딩을 변경 하시겠습니까?


9

속성을 통해 유일한 shapefile 데이터 소스 인코딩과 LATIN1에서 UTF-8로 shapefile을 인코딩하는 방법 을 변경하려고 했습니까? 그러나 변경되지 않습니다.

QGIS 프로젝트를 저장하지 않으면 shapefile 데이터 소스 인코딩을 직접 변경할 수 없습니까?

또한이 코드를 사용해 보았습니다. 변경 인코딩이 표시되지만 shapefile을 다시 열면 동일한 이전 시스템 인코딩이 표시됩니다.

for layer in QgsMapLayerRegistry.instance().mapLayers().values():
    layer.setProviderEncoding(u'UTF-8')
    layer.dataProvider().setEncoding(u'UTF-8')
    print layer.name(), layer.dataProvider().encoding()  

(QGIS 프로젝트를 저장하지 않고, shapefile에 직접 액세스하여 저장하기 만합니다. 프로젝트를 저장하고이 작업을 수행하면 올바르게 작동합니다 )


플러그인에서 코드를 살펴볼 수 있습니다 : shapefile_encoding_fixer
Jakob

프로젝트를 저장하지 않고 qgis를 통해 shapefile에 저장할 수 있습니까?
무하마드 파이 잔 칸

레이어를 마우스 오른쪽 버튼으로 클릭하고 Save As...옵션을 사용해 보셨습니까 ?
Joseph

@Joseph 예 남자 오프 코스, 나는 이미 내 게시물에 그 대답을 언급했습니다! 열린 모양 파일을 qgis 프로젝트로 보내고 다른 이름으로 저장을 통해 인코딩을 변경하지만 다시 열면 시스템에 변경되지 않습니다.
무하마드 파이 잔 칸

@Joseph qgis 프로젝트를 저장하지 않고 qgis 프로젝트를 저장하고 모양 파일을 열면 올바르게 작동합니다!
무하마드 파이 잔 칸

답변:


13

메뉴 표시 줄에서 다음으로 이동하십시오.

Settings > Options > Data Sources > Data source handling

shapefile 인코딩 선언 무시 설정을 선택 취소하십시오 .

인코딩 설정

QGIS에로드 된 모든 레이어가 기본으로 인코딩되도록 설정합니다. UTF-8


1
향후 사용자에게 추가로 @Joseph에게 감사드립니다 . 이 링크는 hub.qgis.org/issues/13203 에도 도움이 되었습니다 . 실제로 shapefile 인코딩 선언 무시 확인 옵션은 utf-8 설정을 무시합니다. .cpg 파일을 무시합니다.
무하마드 파이 잔 칸

@MohammadFaizanKhan-링크에 대한 환영과 감사 :)
Joseph

7

인코딩을 설정할 수있는 다른 위치를 요약하면 다음과 같습니다.

쉐이프 파일을 열 때 : 다른 이름으로 shp 열기

CSV를 열 때 : CSV 추가

벡터 파일을 저장할 때 : 벡터 파일을 다른 이름으로 저장

레이어 속성에서 :
레이어 속성

@Joseph에서 언급했듯이 shapefile 인코딩 선언 무시 설정을 선택 취소해야합니다.


감사합니다. 마지막 줄이 많이 도와주세요. hub.qgis.org/issues/13203
Muhammad Faizan Khan

3

을 사용할 때는 Save As ...다른 파일 이름을 선택해야합니다 Add file to canvas.

결과적으로, 새로운 shapefile을 얻기 위해 프로젝트를 저장 해야 합니다. 저장되지 않은 프로젝트에는 여전히 수정되지 않은 쉐이프 파일과 잘못된 인코딩이 포함됩니다.

BTW Data encoding에서 Layer 속성은 shapefile이 아닌 프로젝트 파일의 일부입니다. 코드 예제는 shapefile 내부에 아무 것도 쓰지 않으며 프로젝트의 레이어 설정 만 변경합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.