Форум » [x]Harbour » Как опледелить кодировку файла *.txt » Ответить

Как опледелить кодировку файла *.txt

Andrey: Всем привет ! Вопрос к украинским коллегам ! Имеются текстовые файлы приходящие из вашего банка. Как определить в какой они кодировке ? У себя в программе (хХарбор) Использую кодировку: REQUEST HB_CODEPAGE_RU866 hb_SetCodepage( "RU866" ) REQUEST HB_LANG_RU866 HB_LANGSELECT("RU866") при использовании у себя функции HB_OEMTOANSI() файл нормально прочитываю у себя в программе. Правда в адресах проскакивают "кракозябы".... А FAR показывает, что файл в DOS кодировке. Какая у вас на Украине используется кодировка ? Что нужно добавить к себе в программу ?

Ответов - 2

Pasha: Если это "DOS"-кодировка, то на Украине она используется в 2-х вариантах: 1) Стандартная кодировка MS 866, в которой для украинских символов используются коды 242-245 Эти символы есть и в кодовой странице харбора RU866, и в UA866, они различаются порядком сортировки 2) Кодовая страница, принятая в качестве украинского стандарта в 1992-м году, украинским символам в ней выделены коды с 242 по 249, и их позиции отличны от позиций кодировки MS. В харборе ей соответствует кодировка UA1125 Скорее всего, в файле из банка используется кодировка 1125, а функция OEMTOANSI перекодирует строку по правилам 866 -> 1251 Поэтому перекодировать надо не средствами windows, а средствами харбора: REQUEST HB_CODEPAGE_UA1125 REQUEST HB_CODEPAGE_UA1251 cStrRes := HB_TRANSLATE(cStr, "UA1125", "UA1251")

Andrey: Спасибо БОЛЬШОЕ, Паша !



полная версия страницы