GDAL и русские имена полей
-
- Активный участник
- Сообщения: 103
- Зарегистрирован: 09 окт 2009, 16:49
- Репутация: 10
GDAL и русские имена полей
Продолжаю мучать GDAL, возникла новая проблема:
есть Mapinfo файл с русскими именами полей, пытаюсь через sql сделать выборку по полю 'название' - ничего не работает, не понимаю, это вообще в GDAL возможно?
Выполняю такие команды :
SET OGR_FORCE_ASCII = NO
ogr2ogr xxx.shp xxx.tab -lco ENCODING=CP1251 -sql "select название from xxx"
Уже во всяких кодировках попробовал, ошибку выводит:
win1251:
ERROR 1: SQL Expression Parsing Error: syntax error, unexpected end of string. Occurred around :
select ╤Н╤А╤З╤В╤А╤Н╤И╤Е from xxx
UTF-8:
ERROR 1: SQL Expression Parsing Error: syntax error, unexpected end of string. Occurred around :
select тХитХЬтХитЦСтХитХЦтХитЦУтХитЦСтХитХЬтХит
есть Mapinfo файл с русскими именами полей, пытаюсь через sql сделать выборку по полю 'название' - ничего не работает, не понимаю, это вообще в GDAL возможно?
Выполняю такие команды :
SET OGR_FORCE_ASCII = NO
ogr2ogr xxx.shp xxx.tab -lco ENCODING=CP1251 -sql "select название from xxx"
Уже во всяких кодировках попробовал, ошибку выводит:
win1251:
ERROR 1: SQL Expression Parsing Error: syntax error, unexpected end of string. Occurred around :
select ╤Н╤А╤З╤В╤А╤Н╤И╤Е from xxx
UTF-8:
ERROR 1: SQL Expression Parsing Error: syntax error, unexpected end of string. Occurred around :
select тХитХЬтХитЦСтХитХЦтХитЦУтХитЦСтХитХЬтХит
-
- Гуру
- Сообщения: 4044
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1049
- Ваше звание: программист
- Откуда: Казань
Re: GDAL и русские имена полей
меня еще в 80-е годы прошлого века научили не использовать русских букв в именах полей, переменных и файлов. Это сэкономило много времени и сил
что касается GDAL, то теоретически возможно все, у вас же есть исходники. Но потребует много времени и сил.
что касается GDAL, то теоретически возможно все, у вас же есть исходники. Но потребует много времени и сил.
-
- Активный участник
- Сообщения: 103
- Зарегистрирован: 09 окт 2009, 16:49
- Репутация: 10
Re: GDAL и русские имена полей
>меня еще в 80-е годы прошлого века научили не использовать русских букв
это все конечно замечательно, но 1) времени прошло много, я с такими проблемами года с 2000 не сталкивался, 2) не все умеют читать английский буквы
>у вас же есть исходники.
вы серьезно?
это все конечно замечательно, но 1) времени прошло много, я с такими проблемами года с 2000 не сталкивался, 2) не все умеют читать английский буквы
>у вас же есть исходники.
вы серьезно?
-
- Гуру
- Сообщения: 5271
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1013
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
- Игорь Белов
- Гуру
- Сообщения: 2227
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1500
- Откуда: Казань
Re: GDAL и русские имена полей
Сообщество затратило огромные усилия, чтобы перевести весь софт на Юникод. Практически весь опенсорсный софт, включая GDAL, прекрасно работает под UNIX и MacOS. Неужели кто-то думает, что можно добровольно полезть адаптировать программы обратно под пещерную ОС, существующую в сотнях или тысячах кодировок?
Сказано же: используйте Linux для работы, а Windows для игр.
Сказано же: используйте Linux для работы, а Windows для игр.
The purpose of computing is insight, not numbers
-
- Гуру
- Сообщения: 4044
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1049
- Ваше звание: программист
- Откуда: Казань
-
- Участник
- Сообщения: 85
- Зарегистрирован: 31 янв 2012, 10:51
- Репутация: 50
Re: GDAL и русские имена полей
spawner, вот так у меня все работает:
ogr2ogr -f "MapInfo File" tmp.mif tmp.shp -sql "select ""номер"", ""адрес"" from tmp" -lco ENCODING=CP1251 -oo ENCODING=CP1251
т.е. явно задайте кодировку источника данных -oo ENCODING=CP1251 и в запросе экранируйте кириллические имена полей двойными кавычками.
ogr2ogr -f "MapInfo File" tmp.mif tmp.shp -sql "select ""номер"", ""адрес"" from tmp" -lco ENCODING=CP1251 -oo ENCODING=CP1251
т.е. явно задайте кодировку источника данных -oo ENCODING=CP1251 и в запросе экранируйте кириллические имена полей двойными кавычками.
-
- Активный участник
- Сообщения: 103
- Зарегистрирован: 09 окт 2009, 16:49
- Репутация: 10
-
- Активный участник
- Сообщения: 103
- Зарегистрирован: 09 окт 2009, 16:49
- Репутация: 10
Re: GDAL и русские имена полей
Вообщем решил проблему:
1. использую не -sql, а -select "Название";
2. имя поля case-sensitive.
ogr2ogr xxx.shp xxx.tab -select "Название" -lco ENCODING=CP1251 -oo ENCODING=CP1251
1. использую не -sql, а -select "Название";
2. имя поля case-sensitive.
ogr2ogr xxx.shp xxx.tab -select "Название" -lco ENCODING=CP1251 -oo ENCODING=CP1251
-
- Активный участник
- Сообщения: 103
- Зарегистрирован: 09 окт 2009, 16:49
- Репутация: 10
Re: GDAL и русские имена полей
Вам не кажется, что вы слишком категоричны? Я так-то задал простой вопрос, а вы мне предложили перейти на линукс xDИгорь Белов писал(а): ↑07 сен 2020, 09:54Сказано же: используйте Linux для работы, а Windows для игр.
Пффф, ради того, чтобы сконвертировать таблички, вы предлагаете копаться в огромных исходниках. Не знаете ответа на вопрос - зачем писать всякую муть?
- Игорь Белов
- Гуру
- Сообщения: 2227
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1500
- Откуда: Казань
Re: GDAL и русские имена полей
Вы невнимательны. Во-первых, ответ был адресован не Вам, а предложившему править исходники. Во-вторых, с моей стороны не было предложения, только констатация факта.
The purpose of computing is insight, not numbers
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей