Jak zakodować pliki shapefile z LATIN1 na UTF-8?

28

Czy istnieje sposób kodowania plików kształtów z LATIN1 na UTF-8?

przeciwprąd
źródło

Odpowiedzi:

16

Możesz to zrobić za pomocą QGIS. Najpierw załaduj save aspliki shapefile, a następnie kodując menu rozwijane wybierz utf-8, a następnie zapisz plik.

Aragonia
źródło
7
Uwaga : aby to rozwiązanie działało, qgis należy uruchomić w środowisku LATIN1 / ISO-8859-1, gdy otworzysz wejściowy plik kształtów, inaczej nie będzie go poprawnie czytać. Jeśli pracujesz w środowisku UTF8, konwersja może się nie powieść cicho, powodując uszkodzenie danych, w zależności od danych w pliku kształtu. BTW, większość systemów operacyjnych ma teraz domyślnie UTF8.
unicoletti
1
Zauważ, że w niektórych sytuacjach może to nie działać, miałem takie problemy: ( osgeo-org.1560.n6.nabble.com/UTF-8-no-more-td4647456.html )
JaakL
Próbuję zapisać plik z jednym kształtem z systemu na utf-8, ale to nie działa. gis.stackexchange.com/questions/219092/...
Muhammad Faizan Khan
27

Zakładając, że korzystasz z Linuksa i masz dostęp do najnowszej wersji GDAL , możesz wypróbować następujące (z tego postu ):

 export SHAPE_ENCODING="ISO-8859-1"
 ogr2ogr output.shp input -lco ENCODING=UTF-8

Uwaga: LATIN1 powinien również działać zamiast ISO-8859-1.

W systemie Windows NIE ustawiaj SHAPE_ENCODING, ogr2ogrnie rozpoznaje ISO-8859-1, ani LATIN1.

unicoletti
źródło
Aby wyjaśnić, „ostatnio” wydaje się tutaj oznaczać 1.9.x. Próbowałem tego z wersją 1.8.1 i nie działało, próbowałem ponownie z wersją 1.9.1 i zadziałało.
Michał Migurski
Nie działało dla mnie w systemie Windows.
Pavel Radzivilovsky
Mam go do pracy w systemie Windows, zaktualizowałem odpowiedź.
flup
Czy wiesz, czy mogę SHAPE_ENCODINGgdzieś sprawdzić listę prawidłowych wartości ?
JJD
1
@JJD Są one takie same, jak używane przez iconv: gnu.org/software/libiconv
unicoletti
3

Jeśli moje rozumienie Shapefiles jest prawidłowe, częścią wrażliwą na kodowanie jest baza danych atrybutów zawarta w pliku DBF.

Oto odpowiedź, która pomogła mi rozwiązać ten problem za pomocą LibreOffice Calc / Base:

/gis//a/3663/17998

Ma tę dodatkową zaletę, że można otworzyć plik DBF przy użyciu odrębnego zestawu znaków, a tym samym dowiedzieć się, jakie jest aktualnie kodowanie.

Marian
źródło