Shapefile veri kaynağı kodlaması değiştirilsin mi?


9

Sadece şekil dosyası veri kaynağı kodlama özellikleri aracılığıyla değiştirmeye çalıştım ve ayrıca nasıl şekil dosyaları LATIN1 UTF-8 kodlamak için? ama değişmez.

QGIS projesini kaydetmeden şekil dosyası veri kaynağı kodlamasını doğrudan değiştiremiyorum?

Ben de bu kodu denedim, değişiklik kodlama gösterir ama yine şekil dosyasını açmak gibi aynı eski sistem kodlaması gösterir:

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 projesini kaydetmiyorum, sadece şekil dosyasına doğrudan erişiyorum ve kaydediyorum. Projeyi kaydedip bu görevi yaptığımda doğru çalışıyor )


Eklentideki koda bir göz atabilirsiniz: shapefile_encoding_fixer
Jakob

projeyi kaydetmeden qgis ile şekil dosyasına kaydedebilir miyim?
Muhammed Faizan Han

Katmanınızı sağ tıklayıp Save As...seçeneği kullanmayı denediniz mi?
Joseph

@Joseph evet adam ders dışı, ben zaten bu cevabı yazıyorum! Açık şekil dosyasını qgis projesine yönlendiriyorum ve kodlamayı kaydetme yoluyla değiştiriyorum, ancak tekrar açtığımda sistemde kalıyor (değişmedi).
Muhammed Faizan Han

@Joseph qgis projesini kaydetmedim, qgis projesini kaydettiğimde ve şekil dosyasını açtığımda doğru çalışıyor!
Muhammed Faizan Han

Yanıtlar:


13

Menü çubuğundan şu adrese gidin:

Settings > Options > Data Sources > Data source handling

ve Shapefile kodlama bildirimini yoksay ayarının işaretini kaldırın :

Kodlama ayarı

Bu, QGIS'e yüklenen tüm katmanları varsayılan olarak kodlanmış olarak ayarlar UTF-8


1
Gelecekte bu kullanıcı için ek olarakJoseph'e teşekkürler, bu bağlantı aynı zamanda hub.qgis.org/issues/13203 . Aslında Shapefile kodlama bildirimi işaretli seçeneğini yoksay utf-8 ayarlarını yoksay. .cpg dosyasını yoksay.
Muhammed Faizan Han

@MohammadFaizanKhan - Bağlantı için en hoş ve teşekkürler :)
Joseph

7

Kodlamayı ayarlayabileceğiniz farklı bir konumu tekrar özetlemek için:

Bir şekil dosyasını açtığınızda: Shp'yi şu şekilde aç

Bir CSV açtığınızda: CSV ekle

Bir vektör dosyasını kaydettiğinizde: Vektör dosyasını farklı kaydet

Katman özelliklerinde:
Katman özellikleri

@Joseph tarafından belirtildiği gibi, büyük olasılıkla Shapefile kodlama bildirimini yoksay ayarının işaretini kaldırmalısınız.


Teşekkürler victor son hattın bana çok yardımcı oldu. hub.qgis.org/issues/13203
Muhammed

3

Kullandığınızda Save As ...farklı bir dosya adı seçmelisiniz ve Add file to canvas.

Sonuç olarak, yeni şekil dosyasını almak için projeyi de kaydetmeniz GEREKİR . Kaydedilmemiş proje hala el değmemiş şekil dosyasını ve yanlış kodlamayı içeriyor.

BTW, Data encodingKatman özelliklerindeki şekil dosyasının değil, proje dosyasının bir parçasıdır. Kod örneğiniz şekil dosyasının içine hiçbir şey yazmaz, yalnızca projenin katman ayarlarını değiştirir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.