Dbf dosyası tarafından shapefiles içinde hangi karakter kodlaması kullanılır? Programa ve makinenin yerel kodlama ayarlarına bağlı olarak farklı şekilde ele alındığı görülüyor. Hangi kodlama 'doğru' - format için belirtilmiş?
Dbf dosyası tarafından shapefiles içinde hangi karakter kodlaması kullanılır? Programa ve makinenin yerel kodlama ayarlarına bağlı olarak farklı şekilde ele alındığı görülüyor. Hangi kodlama 'doğru' - format için belirtilmiş?
Yanıtlar:
Orijinal DBF standardı, ISO8859-1 ve sadece ISO8859-1 kullanımını tanımlar . Yani, gerçekten standartlara uygun bir Shapefile aldığınızda, ISO8859-1 olmalıdır. Tabii ki, bu (çok eski) kısıtlama günümüzde gerçekten kullanılamıyor.
ArcGIS ve Geopublisher, AtlasStyler ve Geoserver, kodlamayı tanımlamak için standardı genişletmeye başladı. İçin ArcGIS , örneğin sadece (diğer Shapefiles aynı basename ile) .cpg dosyası oluşturmak ve kodlama adı ile doldurun.
Örneğin, bir texteditor ile bir myshape.cpg oluşturun ve "UTF-8" 5 karakter ekleyin ve kaydedin. Ardından Shape dosyasını ArcGIS'te açarsanız, bu karakter dizisindeki DBF'nin metin içeriğini okur.
Geoserver: Geoserver WFS, herhangi bir WFS katmanını sıkıştırılmış bir Shapefile olarak dışa aktarabilir. Bu yapıldığında, zipte bir .cst dosyası bulunur ve .cpg dosyasıyla aynı şekilde yapılır.
Dikkat: Bütün bunlar sütun adları için değil yalnızca veriler için geçerlidir. Dosyanın diğer programlarla açılmasını istiyorsanız, ASCII'yi yalnızca bir DBF'nin sütun adlarında kullanmalısınız.
İpucu: Bir DBF'nin kodlamasını değiştirmek için OpenOffice Calc. İle açın. SaveAs'ı seçin ... sol alt kısımdaki "Filter options" tıklayın ve kaydet düğmesine basın. Daha sonra metin içeriğini dönüştürmek için kodlamayı tanımlayabilirsiniz.
General input/output error
aldınızsa, muhtemelen Base yüklü değildir . Sorun, OpenOffice veya LibreOffice kullanıyor olsanız da aynıdır.
.cpg
dosyanın QGIS'de libgdal 1.9'dan itibaren iyi çalışması gerekiyor. Bazen gerekli bile görünüyor: ssrebelious.wordpress.com/2012/03/11/…
"Doğru" kodlamanın olmadığından eminim. Bir .dbf dosyası herhangi bir kodlamada olabilir ve Shapefile dosyasını açabilir ve özellikleri biliyorsanız doğru bir şekilde okuyabilirsiniz.
ESRI tanıtım kağıdını burada bulabilirsiniz: http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
Genellikle bir şekil dosyasının UTF-8 veya kapsanan ülkenin yerel bölgesinde olmasını beklerim (genellikle bazı Latin kodlamaları).
Kodlama ile ilgili bir soru gördüğümde, insanları bu makaleye yönlendiririm: http://www.joelonsoftware.com/articles/Unicode.html
Dediği gibi:
Hangi kodlamayı kullandığını bilmeden bir dizgeye sahip olmak mantıklı gelmiyor. Artık kafanızı kuma sokamaz ve "düz" metnin ASCII olduğunu iddia edemezsiniz.
Basit bir yol shp dosyasını bir csv dosyasına dönüştürmektir. Ve kodlamayı tespit etmek için enca veya iconv komutunu kullanın. UTF8 ve gb18030 dosyaları ile denedim ve çalışır.