Яке кодування символів використовується dbf-файлом у shapefiles? Здається, це обробляється по-різному, виходячи з програми та локальних параметрів кодування машини. Яке кодування є "правильним" - вказане для формату?
Яке кодування символів використовується dbf-файлом у shapefiles? Здається, це обробляється по-різному, виходячи з програми та локальних параметрів кодування машини. Яке кодування є "правильним" - вказане для формату?
Відповіді:
Оригінальний стандарт DBF визначає використання ISO8859-1 та лише ISO8859-1. Отже, коли ви отримуєте Shapefile, який дійсно відповідає стандартам, він повинен бути ISO8859-1. Звичайно, це (дуже давнє) обмеження є не дуже корисним в наші дні.
ArcGIS і Geopublisher, AtlasStyler та Geoserver почали розширювати стандарт для визначення кодування. Для ArcGIS , наприклад, просто створіть .cpg файл (з тим самим базовим іменем, що й інші Shapefiles) і заповніть його ім'ям кодування.
наприклад, створіть myshape.cpg з текстовим редактором та вставте 5 символів "UTF-8" та збережіть його. Якщо потім відкрити Shapefile в ArcGIS, він зчитує текстовий вміст DBF у цьому наборі.
Геосервер: Геосервер WFS може експортувати будь-який шар WFS у вигляді блискавки Shapefile. Коли це зроблено, .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, і це працює.