Какая кодировка символов используется dbf-файлом в шейп-файлах? Кажется, он обрабатывается по-разному, в зависимости от программы и локальных настроек кодировки машины. Какая кодировка 'правильная' - указана для формата?
Какая кодировка символов используется dbf-файлом в шейп-файлах? Кажется, он обрабатывается по-разному, в зависимости от программы и локальных настроек кодировки машины. Какая кодировка 'правильная' - указана для формата?
Ответы:
Исходный стандарт DBF определяет использование ISO8859-1 и только ISO8859-1. Таким образом, когда вы получаете Shapefile, который действительно соответствует стандартам, это должен быть ISO8859-1. Конечно, это (очень старое) ограничение в настоящее время неприменимо.
ArcGIS и Geopublisher, AtlasStyler и Geoserver начали расширять стандарт для определения кодировки. Например, для ArcGIS просто создайте файл .cpg (с тем же базовым именем, что и у других шейп-файлов) и заполните его именем кодировки.
например, создайте myshape.cpg с помощью texteditor, вставьте 5 символов «UTF-8» и сохраните его. Если вы затем откроете Shapefile в ArcGIS, он прочитает текстовое содержимое DBF в этой кодировке.
Geoserver: Geoserver WFS может экспортировать любой слой WFS в виде сжатого шейп-файла. Когда это сделано, файл .cst содержится в zip-файле, точно так же, как файл .cpg.
Внимание: все это относится только к данным, а не к именам столбцов. Вы действительно должны использовать ASCII только в именах столбцов DBF, если вы хотите, чтобы файл можно было открывать в других программах.
Подсказка: чтобы изменить кодировку DBF, откройте его с помощью OpenOffice Calc .. выберите SaveAs ... нажмите "Параметры фильтра" в левом нижнем углу и нажмите "Сохранить". Затем вы можете определить кодировку для преобразования текстового содержимого в.
General input/output error
, вероятно, у вас не установлена база . Проблема одна и та же, используете ли вы OpenOffice или LibreOffice.
.cpg
Файл должен работать штраф в QGIS, тоже, как из libgdal 1.9. Иногда это даже кажется необходимым: ssrebelious.wordpress.com/2012/03/11/…
Я уверен, что нет «правильного» кодирования. Файл .dbf может быть в любой кодировке, и вы сможете открыть Shapefile и правильно прочитать атрибуты, если вы его знаете.
Вы можете найти официальный документ ESRI здесь: http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
Я обычно ожидаю, что шейп-файл будет либо UTF-8, либо локальным в покрытой стране (часто с некоторым латинским кодированием).
Каждый раз, когда я вижу вопрос о кодировке, я отсылаю людей к этой статье: http://www.joelonsoftware.com/articles/Unicode.html
Как говорится:
Не имеет смысла иметь строку, не зная, какую кодировку она использует. Вы больше не можете засовывать голову в песок и делать вид, что «простой» текст - это ASCII.
Простой способ - конвертировать файл shp в файл csv. И используйте enca или iconv для определения кодировки. Я попробовал с файлами UTF8 и gb18030, и это работает.