Узнать исходную кодировку загружаемого shp-файла
-
- Гуру
- Сообщения: 969
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Узнать исходную кодировку загружаемого shp-файла
Пожалуйста, подскажите как узнать исходную кодировку загружаемого в QGIS - shp-файла? И есть ли таковая функция в Python'е ("внутрях" QGIS 2.8 под Windows)?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Узнать исходную кодировку загружаемого shp-файла
В Linux-системе кодировку шейп-файла проще всего определить так (без Питона, нужна утилита enca):
или так
А вот вариант на Питоне с исп-ем библиотек dbfpy и chardet:
Код: Выделить всё
ogrinfo -al test.shp | enca
Код: Выделить всё
ogr2ogr -f CSV test.csv test.dbf
enca test.csv
Код: Выделить всё
from dbfpy import dbf
from chardet import detect
db = dbf.Dbf('test.dbf')
N=0
enc_list = []
for rec in db:
for f in rec.fieldData:
while N < 10:
N = N + 1
enc_list.append(detect(f))
result = [dict(y) for y in set(tuple(x.items()) for x in enc_list)]
print result[0]['encoding']
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 969
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: Узнать исходную кодировку загружаемого shp-файла
Спасибо - Python-вариант - должен для меня подойти, Александр!Александр Мурый писал(а):В Linux-системе кодировку шейп-файла проще всего определить так (без Питона, нужна утилита enca):или такКод: Выделить всё
ogrinfo -al test.shp | enca
А вот вариант на Питоне с исп-ем библиотек dbfpy и chardet:Код: Выделить всё
ogr2ogr -f CSV test.csv test.dbf enca test.csv
Код: Выделить всё
from dbfpy import dbf
from chardet import detect
db = dbf.Dbf('test.dbf')
N=0
enc_list = []
for rec in db:
for f in rec.fieldData:
while N < 10:
N = N + 1
enc_list.append(detect(f))
result = [dict(y) for y in set(tuple(x.items()) for x in enc_list)]
print result[0]['encoding']
Кто сейчас на конференции
Сейчас этот форум просматривают: Semrush [Bot] и 2 гостя