Авторизация

Логин:
Пароль:
Восстановить пароль
Регистрация
  • Форум
  • Блоги
  • Контакты
  • Новости
  • Продукты
  • Отрасли
  • Обучение
  • Поддержка
  • События
  • О компании
  • Изменение порядка работы с шейп-файлами и dbf-таблицами в ArcGIS Desktop 10.2.1

    Начиная с версии ArcGIS for Desktop 10.2.1 перешел на экспорт данных в форматы шейп-файлов и dbf-таблиц в кодировку UTF-8 (см. http://support.esri.com/en/knowledgebase/techarticles/detail/21106).

    Причиной этого перехода является то, что кодировка UTF-8 в настоящее время является стандартом де-факто для большинства программных средств и файлов.

    В соответствии с описанием шейп-файла при экспорте в шейп-файл из ArcGIS for Desktop создается файл *.cpg c содержимым, состоящим из одной строки: UTF-8

    При отсутствии этого файла (или в случае, если внешнее приложение не предназначено для работы с такими файлами, как, например, MS Excel) содержимое экспортированного шейп-файла или таблицы dbf читается некорректно.

    Установка значения dbfDefault в реестре, что описано в статье 21106 для предыдущих версий ArcGIS, в версиях 10.2.1 и 10.2.2 исходно не поддерживается.

    Обновление от 16.05.2014

    Эту проблему решают обновление для версий 10.2.1 и 10.2.2 «ArcGIS 10.2.1-10.2.2 for (Desktop, Engine, Server) Set Shapefile Default Code Page Patch».

    ArcGIS 10.2.x корректно читает шейп-файлы и таблицы dbf, сохраненные в различных кодировках, например, 1251 (Windows, ANSI), 866 (MSDOS, OEM) и др. Чтение содержимого файлов осуществляется в соответствии со значением codepage (кодовая страница), указанном в заголовке dbf-файла. В случае некорректной установки кодовой страницы в заголовке, содержимое файла читается некорректно.

    Изменить установку кодовой страницы в заголовке файлов, уже созданных в новой версии ArcGIS for Desktop, и/или изменить кодировку данных можно с помощью различных программ, например, с помощью DBFShow. Установить корректную кодировку в программе DBFShow можно с помощью пунктов меню "Разное/Кодировка", при этот установленное значение записывается в заголовок dbf-файла. Перекодировать dbf-файл можно в программе DBFShow можно с помощью пунктов меню "Инструменты/Конвертировать кодировки".

    Перекодировать dbf-файлы можно также с помощью скрипта Python.

    Сотрудники технической поддержки Esri CIS выражают благодарность автору программы DBFShow, Ардашову В.А. за отличный продукт и Максиму Дубинину (GIS-Lab) за очень полезную статью.

    Обновление от 22-апр-2014

    Другие проблемы из-за сохранения данных в UTF, возникающие при экспорте информации, содержащей кириллицу, в шейп-файлы.

    В версии 10.2.1 в случае, если в названии столбца содержится подчеркивание и за подчеркиванием следует два или более символа, включающие кириллицу или любые другие национальные символы (пример: новое_поле), значения этого столбца при экспорте в шейп-файл искажаются. Если столбец текстовый, то значения пропадают. Если столбец числовой, то значения приравниваются нулю. В версии 10.2.2 обнуляется числовое поле, если в нем три или более символа, включающие кириллицу или любые другие национальные символы. С текстовыми полями всё обстоит так же, как в версии 10.2.1.

    Путь решения проблемы: никогда не называйте столбцы таблиц и классов объектов по-русски, в названиях самих таблиц/классов объктов тоже лучше не использовать кириллицу. Это позволит избегать многих проблем. В БГД для русских названий таблиц, классов объектов и столбцов есть псевдонимы, которые предназначены и для названий с пробелами, и для кириллицы. В шейп-файлах придется мириться с латиницей.

    Обновление от 16.05.2014

    Данная проблема зарегистрирована разработчиком #NIM101154  Exportingafeatureclassintoashapefilein 10.2.1. Fields with Cyrillic characters are truncated, and data is lost. Данная проблема пока не решена в выпущенном обновлении «ArcGIS 10.2.1-10.2.2 for (Desktop, Engine, Server) Set Shapefile Default Code Page Patch»

    В случае, если в значениях столбца (поля) содержится кириллица или любые другие национальные символы, при экспорте в шейп-файл реальная длина поля уменьшается в два раза. Информация, которая выходит за реальную длину поля при экспорте в шейп-файл автоматически обрезается. Пример: длина поля «Тип» равна 16 символам, в БГД было значение «Широколиственные», в шейп-файле будет «Широколи». Проблема существует в версиях 10.2.1, 10.2.2.

    Варианты решения проблемы: 

    1. Для версий 10.2.1 и 10.2.2: установить обновление «ArcGIS 10.2.1-10.2.2 for (Desktop, Engine, Server) Set Shapefile Default Code Page Patch» и в реестре установить кодировку 1251;
    2. Для версии 10.3: в реестре установить кодировку 1251;
    3. Вместо экспорта сделать новый пустой шейп-файл, создать в нем структуру полей аналогичную исходному классу объектов, установить необходимую длину текстовых полей, загрузить данные с помощью простого загрузчика данных. К сожалению, при создании шейп-файла невозможно импортировать структуру полей. Если полей достаточно много, можно создать новый пустой класс объектов в БГД, импортировать в него структуру полей из имеющегося шей-файла, потом этот пустой класс объектов экспортировать в шейп-файл.

    Автор: Стрельцов Игорь


    Вернуться к списку