Страница 1 из 1
					
				Проблемы с кодировкой при конвертации в .tab (Mapinfo)
				Добавлено: 15 окт 2018, 10:31
				 Vadim
				Здравствуйте, коллеги!
Столкнулся со следующей проблемой. Стоит задача из файла GML вытянуть слои в .tab. В одной из статей на ГИС-лабе говорилось, что для корректного чтения кириллических названий нужно сначала запустить команду SET GDAL_FILENAME_IS_UTF8=OFF. потом запускается сама команда конвертации (скажем, ogr2ogr -f "MapInfo File" C:\Users\Vadim\Downloads\FZ C:\Users\Vadim\Downloads\GML\FZ.gml).
Кириллические названия слоёв получаются корректные, а вот кириллические названия полей и заполнение атрибутики - "кракозябры". 
Подскажите, пожалуйста, как можно решить проблему.
P.S. При конвертировании в geopakage такой проблемы не возникает.
			
		
				
			 
- 1.png (141.25 КБ) 20653 просмотра
  
			
					
				Re: Проблемы с кодировкой при конвертации в .tab (Mapinfo)
				Добавлено: 15 окт 2018, 10:46
				 trir
				
			 
			
					
				Re: Проблемы с кодировкой при конвертации в .tab (Mapinfo)
				Добавлено: 15 окт 2018, 11:30
				 Игорь Белов
				Опция ENCODING работает начиная с версии GDAL/OGR 2.3
Если бы в названиях слоёв не было кириллицы, можно было бы предварительно перекодировать GML в CP1251.
			 
			
					
				Re: Проблемы с кодировкой при конвертации в .tab (Mapinfo)
				Добавлено: 15 окт 2018, 11:57
				 Vadim
				Попробовал вариант:
ogr2ogr -f "Mapinfo File" C:\Users\Vadim\Downloads\FZ C:\Users\Vadim\Downloads\GML\FZ.gml -lco encoding=UTF-8
Но выдал ошибку помимо "Warning 502: field names contains invalid caracters" ещё  "Warning 6: Dataset C:\Users\Vadim\Downloads\FZ  does not support layer creation option encoding"
Стоит QGIS 2.16.2
Версия GDAL/OGR - 2.1.1
			 
			
					
				Re: Проблемы с кодировкой при конвертации в .tab (Mapinfo)
				Добавлено: 15 окт 2018, 12:10
				 trir
				
			 
			
					
				Re: Проблемы с кодировкой при конвертации в .tab (Mapinfo)
				Добавлено: 15 окт 2018, 13:23
				 Игорь Белов
				Vadim писал(а): ↑15 окт 2018, 11:57Попробовал вариант … Версия GDAL/OGR - 2.1.1
 
Всё верно, 2.1.1 древнее версии 2.3.
trir писал(а): ↑15 окт 2018, 12:10.tab не поддерживает UTF-8
 
Новые 64-битные версии MapInfo работают с юникодом, и юникод поддерживается TAB'ами в формате MapInfo Extended format. Вот только ни MapInfo Вадима, ни GDAL/OGR об этом формате не знают.
 
			
					
				Re: Проблемы с кодировкой при конвертации в .tab (Mapinfo)
				Добавлено: 15 окт 2018, 13:29
				 gamm
				Vadim писал(а): ↑15 окт 2018, 11:57Попробовал вариант:
 
конвертируйте в MIF/MIF, это обычный текстовый файл. И меняйте кодировку.
 
			
					
				Re: Проблемы с кодировкой при конвертации в .tab (Mapinfo)
				Добавлено: 15 окт 2018, 14:08
				 Vadim
				gamm, спасибо за подсказку! А не скажете, что прописать, чтобы получился mid/mif, а не таб. По умолчанию -f "MapInfo File" создаёт табы.
			 
			
					
				Re: Проблемы с кодировкой при конвертации в .tab (Mapinfo)
				Добавлено: 15 окт 2018, 14:14
				 Игорь Белов
				Vadim писал(а): ↑15 окт 2018, 14:08что прописать, чтобы получился mid/mif, а не таб
 
Там же:
 
			
					
				Re: Проблемы с кодировкой при конвертации в .tab (Mapinfo)
				Добавлено: 15 окт 2018, 14:34
				 Vadim
				Игорь Белов, спасибо! Получилось конвертуть в мид/миф. Единственное, осталось понять как одновременно поменять кодировку у всех файлов через notepad++. Выделить все - преобразовать кодировку (в UTF-8) и сохранить все не помогло...
			 
			
					
				Re: Проблемы с кодировкой при конвертации в .tab (Mapinfo)
				Добавлено: 15 окт 2018, 15:10
				 Игорь Белов
				Вероятно, надо открывать каждый файл в одной кодировке и сохранять в другой.
Я предпочитаю командную строку. Например, в настройках OSGeo4W можно добавить пакет MSYS и для перекодирования MIF/MID файлов  из папки utf-8 в папку cp1251 запускать скрипт bash:
Код: Выделить всё
for f in utf-8/*.mi?
do
    iconv -f utf-8 -t cp1251 "${f}" > cp1251/$(basename "${f}")
done
 
			
					
				Re: Проблемы с кодировкой при конвертации в .tab (Mapinfo)
				Добавлено: 15 окт 2018, 15:19
				 Vadim
				Игорь Белов, спасибо! Буду пробовать..
Всем спасибо за помощь!