Jak określasz kodowanie pliku kształtu?

25

Czy istnieje sposób na określenie zestawu znaków używanego dla danego pliku kształtu?

Matthew Finlay
źródło

Odpowiedzi:

9

Próba i błąd. Spróbuj otworzyć plik .dbf za pomocą Ms Excel lub OpenOffice przy użyciu różnych ustawień, aż wszystko będzie dobrze.

Spójrz na ten post, aby uzyskać więcej wskazówek: /programming/319095/how-do-i-determine-the-character-set-of-a-string

Pablo
źródło
Jeśli nic nie wiadomo na temat kodowania, warto najpierw wypróbować latin1 lub UTF-8.
krlmlr
Otworzyłem plik .dbf w Ms Excel, a znaki pojawiają się normalnie. Jak mogę sprawdzić, które kodowanie Excel wykorzystuje / wykrywa? Aby ustawić go w QGIS ...
user3386170
12

Istnieją dwa sposoby określania zestawu znaków dla pliku kształtu przez programy.

Andreas W. Bartels
źródło
+1 Ten link do strony formatu pliku dBase jest świetny. Jednak AFAIK, strony kodowe nigdy nie były zawarte w formacie dBase III. Odniesienie do rozszerzenia formatu FoxPro, które sugeruje, że nie wszystkie pliki .dbf będą zawierały informacje o stronie kodowej (lub jeśli tak, może to wynikać z pojawienia się śmieci w bajtach w wolnym obszarze nagłówka ). Ale jeśli uda Ci się wykopać te informacje, nadal jest to dobry początek wyszukiwania prób i błędów. BTW, witamy na naszej stronie!
whuber
Niektóre biblioteki dbf Pythona mogą czytać stronę kodową, jeśli są tam informacje.
Paulo Scardine,
5

fileNarzędzie jest w stanie odgadnąć, kodowanie pliku tekstowego. Użyj ogr2ogrdo konwersji, która zachowuje oryginalne kodowanie, jeśli nie ma .cpgpliku :

ogr2ogr -f CSV file.csv file.dbf
file file.csv

Przykładowe dane wyjściowe:

file.csv: ISO-8859 text

Przetestowałem to przy użyciu dwóch najczęstszych kodowań, UTF-8 i Latin1. Działa w systemie Ubuntu od razu po instalacji, nie jestem pewien co do systemu OS X. Nie znam filenarzędzia w systemie Windows.

UWAGA : Gdy tylko pojawi się odpowiedni .cpgplik, który wskazuje kodowanie, ogr2ogrhonoruje go, a wyjście będzie w UTF-8. Ale jeśli wyjście CSV wygląda poprawnie, wiesz, że informacje w .cpgpliku są dokładne.

krlmlr
źródło