кодировка shp

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

кодировка shp

Сообщение kasandra »

Доброго дня,

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

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

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

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

Сообщение trir »

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

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

Сообщение Игорь Лебедь »

Пришлите снимок экрана с кракозябрами, а если не жалко - файл dbf. Наиболее распространённые варианты: UTF-8, Win1251 (System), CP866
kasandra
Активный участник
Сообщения: 145
Зарегистрирован: 09 апр 2014, 11:33
Репутация: 2

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

Сообщение kasandra »

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

Но меня интересует в целом пути решения, так как файлов таких много и ситуации встречаються.
Вложения
files.7z
(281 байт) 381 скачивание
Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2240
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1513
Откуда: Казань

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

Сообщение Игорь Белов »

Файл DBF в архиве повреждён:
  • заголовок забит мусором; его длина избыточна, три байта лишние;
  • в реестре полей пробелы вместо нулей;
  • сам текст выглядит как результат двойного перекодирования в юникод: три байта на символ кириллицы; я бы не взялся за восстановление.
The purpose of computing is insight, not numbers
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm »

уважаемые коллеги, просветите, как разработчикам 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 »

gamm, подозреваю, при чтении файла QGis берёт кодировку из заголовка DBF (а R туда запросто какое-нибудь ISO вписал), соответственно символы изначально прочтены неправильно и указание другой кодировки ситуацию не спасает. А если есть файл cpg, тогда QGis игнорирует кодировку в заголовке DBF и читает символы верно
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm »

Ivor писал(а): 14 июл 2022, 08:07а R туда запросто какое-нибудь ISO вписал
судя по периодической ругани, что не смог преобразовать UTF-8 в какое-то ISO с длинным номером, похоже на правду. Но тогда Automatic должно работать, у QGIS список кодировок длинный, и разные ISO там есть. Загадка, однако :oops:
trir
Гуру
Сообщения: 5354
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

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

Сообщение trir »

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

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

Сообщение Ivor »

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

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

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

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

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

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