Хорошо, вот еще один вопрос о кодировке символов, демонстрирующий мое невежество во всем, что связано с 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
.