кодировка shp

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
kasandra
Активный участник
Сообщения: 145
Зарегистрирован: 09 апр 2014, 11:33
Репутация: 2

кодировка shp

Сообщение kasandra » 04 мар 2018, 22:22

Доброго дня,

Думаю задаю очень простой вопрос, но пока не нашла решения для себя.

Вместо русских букв отображаются символы в таблице атрибутов shp-файла, кодировку в ручном режиме пробовала подобрать не получилось, онлайн декодер в подборе кодировки (по содержимому dbf файла) тоже не помог.

Возможно ли подобрать/узнать кодировку?

trir
Гуру
Сообщения: 5277
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: кодировка shp

Сообщение trir » 04 мар 2018, 22:58

можно, .cpg

Аватара пользователя
Игорь Лебедь
Завсегдатай
Сообщения: 452
Зарегистрирован: 24 апр 2010, 19:47
Репутация: 101
Откуда: Город в клёнах и акациях
Контактная информация:

Re: кодировка shp

Сообщение Игорь Лебедь » 05 мар 2018, 10:06

Пришлите снимок экрана с кракозябрами, а если не жалко - файл dbf. Наиболее распространённые варианты: UTF-8, Win1251 (System), CP866

kasandra
Активный участник
Сообщения: 145
Зарегистрирован: 09 апр 2014, 11:33
Репутация: 2

Re: кодировка shp

Сообщение kasandra » 06 мар 2018, 18:29

Не жалко, прилагаю один из файлов

Но меня интересует в целом пути решения, так как файлов таких много и ситуации встречаються.
Вложения
files.7z
(281 байт) 330 скачиваний

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2229
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1501
Откуда: Казань

Re: кодировка shp

Сообщение Игорь Белов » 06 мар 2018, 19:11

Файл DBF в архиве повреждён:
  • заголовок забит мусором; его длина избыточна, три байта лишние;
  • в реестре полей пробелы вместо нулей;
  • сам текст выглядит как результат двойного перекодирования в юникод: три байта на символ кириллицы; я бы не взялся за восстановление.
The purpose of computing is insight, not numbers

gamm
Гуру
Сообщения: 4046
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1050
Ваше звание: программист
Откуда: Казань

Re: кодировка shp

Сообщение gamm » 13 июл 2022, 14:11

уважаемые коллеги, просветите, как разработчикам QGIS удалось добиться следующих удивительных результатов:

1) имеется shape файл, кодировка в dbf - 1251, файла cpg нет (потому что rgdal::writeOGR из R его не пишет).
2) если добавить этот shape файл как слой в QGIS, то вместо русских букв - кракозябры. Пробовал на форме указать все разумные варианты из списка - Automatic, cp1251, win1251, windows-1251, ...) - не помогает
3) если создать файл cpg, а в нем написать 1251, то открывает нормально, русские буквы видно.

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: кодировка shp

Сообщение Ivor » 14 июл 2022, 08:07

gamm, подозреваю, при чтении файла QGis берёт кодировку из заголовка DBF (а R туда запросто какое-нибудь ISO вписал), соответственно символы изначально прочтены неправильно и указание другой кодировки ситуацию не спасает. А если есть файл cpg, тогда QGis игнорирует кодировку в заголовке DBF и читает символы верно

gamm
Гуру
Сообщения: 4046
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1050
Ваше звание: программист
Откуда: Казань

Re: кодировка shp

Сообщение gamm » 14 июл 2022, 11:06

Ivor писал(а):
14 июл 2022, 08:07
а R туда запросто какое-нибудь ISO вписал
судя по периодической ругани, что не смог преобразовать UTF-8 в какое-то ISO с длинным номером, похоже на правду. Но тогда Automatic должно работать, у QGIS список кодировок длинный, и разные ISO там есть. Загадка, однако :oops:

trir
Гуру
Сообщения: 5277
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: кодировка shp

Сообщение trir » 14 июл 2022, 11:10

скорее это глюк ogr

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: кодировка shp

Сообщение Ivor » 14 июл 2022, 12:44

gamm, Automatic работать не сможет, ибо символы изначально читаются в неверной кодировке. Если он изначально прочитал текст win-1251 как iso-8859-1, то ни автоматика, ни ручное выставление уже не поможет - они работают с уже прочитанным текстом. Это работа для Штирлица (помните, была такая программулина?).

А предварительного выбора кодировки при чтении шейпов в QGis не встроили...

P.S. Как я понимаю, QGis грузит в память сразу весь шейп целиком, а всякие манипуляции с кодировками и проекциями, которые в диалоге свойств слоя, производит над уже загруженными данными

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей