Хорошо, вот еще один вопрос о кодировке символов, демонстрирующий мое незнание всего, что связано с Unicode.
Я читаю данные из файлов Microsoft Excel .xls
и сохраняю их в шейп-файлах ESRI .shp
.Для версий Excel> 5.0 текст в файлах Excel хранится как Unicode.Тем не менее, Unicode (и, в частности, UTF-8
поддержка шейп-файлов несовместима , и поэтому я думаю, что мне вообще не следует его использовать. Однако шейп-файлы действительно поддерживают кодовые страницы старой школы.
Что такоенаилучшая практика в ситуации, когда вы должны преобразовать строку Unicode в строку в неизвестной, но определенной кодовой странице?
Насколько я понимаю, строка Unicode может включать символы из нескольких "кодовых страниц".следовательно, я должен каким-то образом оценить «лучшую» кодовую страницу для использования, а затем преобразовать все неподдерживаемые символы в их ближайшее приближение в этой кодовой странице (или страшно ?
). Это обычный подход?
Я определенно могу использовать больше, чем , только системную кодовую страницу. Поскольку .shp
файлы используют файлы .dbf
для хранения своих атрибутных данных, по крайней мере все кодовые страницы, указанные в формате .dbf
, должны поддерживаться.(см. описание формата xBase ). Поддерживаемые кодовые страницы: DOS USA
, DOS Multilingual,
Windows ANSI,
Standard Macintosh
, EE MS-DOS
, Nordic MS-DOS
, Russian MS-DOS
, Icelandic MS-DOS
, Kamenicky (Czech) MS-DOS
, Mazovia (Polish) MS-DOS
, Greek MS-DOS (437G)
, Turkish MS-DOS
, Russian Macintosh
, Eastern European Macintosh
, Greek Macintosh
, Windows EE
, Russian Windows
, Turkish Windows
, Greek Windows
Кроме того, некоторые приложения поддерживают использование файла *.cpg
, в котором указываются дополнительные кодовые страницы для использования (хотя я понимаю поддержку utf-8
, и яПодозреваю, что многие другие кодовые страницы ограничены).
Поскольку я пытаюсь разработать инструмент общего назначения, я не могу ничего предположить о содержимом Unicode в файлах .xls
.