1.7.4 - слои открываются только в кодировке UTF-8

Здесь нужно сообщать об ошибках в QGIS, с подробным описанием шагов и версии ПО.
Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

1.7.4 - слои открываются только в кодировке UTF-8

Сообщение SS_Rebelious » 21 фев 2012, 16:05

Только что обновился до 1.7.4. Не важно, какая кодировка указывается при открытии слоя, в свойствах слоя выставляется UTF-8. При попытке выставить нужную кодировку в свойствах слоя, она всё-равно сбрасывается на UTF-8.

openSUSE
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение rhot » 21 фев 2012, 16:12

Только что хотел обновиться с 1.7.3 до 1.7.4. Не буду пока :)
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение Voltron » 21 фев 2012, 16:47

SS_Rebelious писал(а):Только что обновился до 1.7.4. Не важно, какая кодировка указывается при открытии слоя, в свойствах слоя выставляется UTF-8. При попытке выставить нужную кодировку в свойствах слоя, она всё-равно сбрасывается на UTF-8.
А теперь версию GDAL в студию. Мои скромные способности телепата говорят, что используется GDAL 1.9.0. Если это так, то претензии не совсем по адресу.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение Voltron » 21 фев 2012, 16:50

Да, не подтверждаю на Windows и Linux.

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение rhot » 21 фев 2012, 16:55

у меня вообще версия gdal 1.8.0
=D
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение Voltron » 21 фев 2012, 17:02

rhot писал(а):у меня вообще версия gdal 1.8.0
Ну и обновляйтесь себе. Нет там таких ужасов.

Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение SS_Rebelious » 10 мар 2012, 00:05

Извиняюсь, что выпал на какое-то время из дискуссии.

Voltron, ты в своём блоге пишешь про GDAL 1.9:
Еще одним шагом стала реализация перекодирования атрибутов shape-файла в UTF-8 при чтении, и из UTF-8 при записи. Только вот... кодировка определяется путем считывания LDID (Language Driver ID) из заголовка DBF. Вобщем-то это правильный подход, только что-то я не припомню когда в последний раз видел шейпы с корректно указанной кодировкой.
Мои шейпы создавались в QGIS, отсюда я могу сделать вывод, что некорректная работа с кодировкой возникла в результате того, что QGIS не записал тип кодировки в заголовок dbf. Если так, то наверное следует переименовать топик в "QGIS не подписывает тип кодировки shp-файла"?

Мне, как не программисту не очевидна односторонняя вина GDAL. С точки зрения простого пользователя это QGIS не адаптировался к новой версии GDAL: ведь, нет никаких предупреждений или сообщений о возможных ошибках при работе в связке QGIS и GDAL 1.9... Официально нигде не говорится, что для адекватной работы QGIS надо использовать GDAL не новее 1.8.1...

А вообще, я был бы очень признателен небольшому разъяснению о будущем взаимодействии QGIS и GDAL>1.9 по части работы с кодировками: сколько месяцев уйдёт на утряску и будет ли эта проблема решена (решается ли она)? Или 1.8.1 - последний релиз GDAL, который будет адекватно работать с кодировкой?
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение Voltron » 10 мар 2012, 11:34

SS_Rebelious писал(а):Мои шейпы создавались в QGIS, отсюда я могу сделать вывод, что некорректная работа с кодировкой возникла в результате того, что QGIS не записал тип кодировки в заголовок dbf. Если так, то наверное следует переименовать топик в "QGIS не подписывает тип кодировки shp-файла"?
Да, QGIS не пишет LDID в DBF при создании шейпа, об этом уже сообщали в #4343. Закрыть баг можно, но проблему это решит только частично (об этом ниже). GDAL же по умолчанию пишет LDID/87 (Default), хотя ИМХО логичнее было бы писать системную кодировку.
SS_Rebelious писал(а):Мне, как не программисту не очевидна односторонняя вина GDAL. С точки зрения простого пользователя это QGIS не адаптировался к новой версии GDAL: ведь, нет никаких предупреждений или сообщений о возможных ошибках при работе в связке QGIS и GDAL 1.9... Официально нигде не говорится, что для адекватной работы QGIS надо использовать GDAL не новее 1.8.1...
Так проблем со связкой QGIS + GDAL 1.9 нет, если DBF содержит правильный LDID или если используется кодировка Latin-1.

Вообще, здесь есть несколько интересных вопросов.
  1. когда создавался стандарт DBF про unicode во всех его проявлениях никто не слышал и даже не предполагал, что когда-нибудь нечто такое появится. Поэтому среди существующих кодов LDID utf-8 просто нет и уже врядли будет. Именно по этой причине, исправление #4343 решит проблему лишь отчасти.
  2. выходом могло бы быть использование файлов .cpg, в которых указывается кодировка атрибутивных данных. НО! В GDAL по каким-то причинам поддержки .cpg нет и, судя по всему, не предвидится. Лично мне это кажется неправильным.
  3. поддержку файлов .cpg можно реализовать уровнем выше, в той же QGIS (насколько понял, именно на это надо и ориентироваться, хотя, опять же ИМХО, это не правильно). Правда, здесь возникает вопрос приоритетов: что важнее LDID или .cpg?
  4. создание .cpg надо предусмотреть и при сохранении shape-файлов
SS_Rebelious писал(а):А вообще, я был бы очень признателен небольшому разъяснению о будущем взаимодействии QGIS и GDAL>1.9 по части работы с кодировками: сколько месяцев уйдёт на утряску и будет ли эта проблема решена (решается ли она)? Или 1.8.1 - последний релиз GDAL, который будет адекватно работать с кодировкой?
Нострадамус из меня неважный :-). Могу сказать только, что когда-нибудь проблема будет решена. Скорее всего, это случится после перехода OSGeo4W на GDAL 1.9, когда многие пользователи столкнутся с данной проблемой и поднимется шум. Пару раз я сам думал покопаться во всем этом и попробовать исправить, но руки так и не дошли. Если ничего срочного не свалится, попробую все же заняться. Если это случится, возможно, исправление появится чуть быстрее.

В качестве временного костыля можно принудительно указывать GDAL кодировку шейпов через переменную SHAPE_ENCODING

Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение SS_Rebelious » 10 мар 2012, 15:40

Спасибо за разъяснения!
Немного поэкспериментировав, выяснил, что shp-файлы, имеющие .cpg с правильно указанной кодировкой работают нормально. Кажется, самое простое решение - создание .cpg при создании нового shp-файла, а также принудительное создание .cgp при открытии шейпа у которого .cgp отсутствует (на основании LDID (если есть) или сведений о кодировке, предоставляемых пользователем в диалоге открытия слоя ).

Что касается приоритетов LDID и .cpg, то я предлагаю следующее:
1. Переделать диалог открытия слоя таким образом, что если кодировка файла указана в либо в LDID либо в .cpg, то у пользователя не было бы нужды выбирать кодировку вручную, а в выпадающем списке сразу выставлялась бы нужная, и сообщалось бы (рядом с выпадающим списком кодировки) на основе чего выставлена такая кодировка.
2. Если есть и LDID, и .cpg и в них указаны разные кодировки, то выдавалось бы предупреждение, что кодировка LDID не совпадает с кодировкой, указанной в .cpg (и указывалось бы, какая кодировка где указана). Тогда не имеет значения, какая из кодировок выставится по умолчанию - пользователь будет знать, что если не подошла одна - он выберет другую. В свойствах слоя в этом случае можно было бы добавить опцию перезаписать LDID/.cgp в соответствии со значением, выбранным пользователем при открытии файла.
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

croga
Новоприбывший
Сообщения: 2
Зарегистрирован: 19 мар 2012, 14:52
Репутация: 0

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение croga » 28 мар 2012, 16:29

Проблема все еще остается..
Печаль :(

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение Voltron » 28 мар 2012, 16:49

Логично, ведь этим никто не занимался.

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение bolotoved » 24 апр 2012, 02:43

Давно не имел дело с кириллицей в атрибутах, а тут срочно понадобилось и вот я в тут :(

А что прописывать в *.cpg если шейпа создавались в QGIS под Windows и стояла кодировка CP-1251?
Пробовал писать:
CP-1251
CP 1251
1251
CP1251
Так ничего и не добился.

(QGIS-1.9.90, GDAL 1.9, Win XP)

Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение SS_Rebelious » 24 апр 2012, 03:04

bolotoved писал(а):А что прописывать в *.cpg
попробуй: Windows-1251
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение bolotoved » 24 апр 2012, 03:15

Не хочет ни в каком варианте:
windows-1251
windows 1251
Windows-1251
Windows 1251

beard
Новоприбывший
Сообщения: 14
Зарегистрирован: 27 апр 2012, 12:55
Репутация: 1
Откуда: Москва

Re: 1.7.4 - слои открываются только в кодировке UTF-8

Сообщение beard » 27 апр 2012, 13:18

Только что обновился до 1.7.4. Не важно, какая кодировка указывается при открытии слоя, в свойствах слоя выставляется UTF-8. При попытке выставить нужную кодировку в свойствах слоя, она всё-равно сбрасывается на UTF-8.
Работаю с QGIS несколько месяцев в Linux и Windows. В Linux Mint 9 все нормально, а в Windows 7 после последнего обновления в слоях только UTF-8. Над картами работало несколько человек (у всех Windows 7), а теперь работа стоит.
Может быть уже решил кто-нибудь проблему?
Установка из OSGeo4W даже откатить версию не дает...
Замечено:
При создании нового слоя в 1251 имя объекта появляется, но если перезапустить программу или отключить-подключить слой, кодировка слоя возвращается в UTF-8.

Версия QGIS 1.9.90-Alpha Ревизия 5b2ef2b

28.04.2012
Параллельно с 1.9.9 поставили 1.7.1 (сохранился дистрибутив), Кодировка системная нормальная...
Последний раз редактировалось beard 28 апр 2012, 12:31, всего редактировалось 1 раз.
Никогда не поздно, если еще не рано...

Ответить

Вернуться в «Ошибки QGIS»

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

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