| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > кодировки |
| Автор: Гость_qwerty 28.7.2004, 13:18 |
| Нашел тут в MSDN библиотеку mlang.dll, которая якобы должна перекодировать строки в разные кодировки !!!! Собственно задача в этом стоит - перекодировать из одной кодировки в другую. Например koi8r в cp1251 (сразу говорю таблицы не катят, этож на каждую кодировку таблица нужна). Библиотека эта поддерживает com, но как загрузить ее !!!???? импорт не проходит никак??? |
| Автор: Maverick 28.7.2004, 13:27 | ||
Перекодируй сам... в чем проблема?
Что-то такое... выдрал из старого проекта.... я думаю и для кои8 написать можно подобное... |
| Автор: Гость_qwerty 28.7.2004, 14:15 |
| да проблемы в этом нет.... но ты загляни в эксплорер в раздел кодировки и сразу поймешь в чем проблема.... там слишком много кодировок, вот в чем проблема. зачем столько писать если уже есть библиотека |
| Автор: Girder 28.7.2004, 17:56 | ||||
| qwerty, ты б зарегился. Читаем: 1) http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaol11/html/olproInternetCodepage.asp 2) http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceielng/html/cerefConvertINetString.asp Ну а далее, как два байта переслать: Основная функция:
dwDstEncoding - кодировка ответа(DestStr); Формат использования:
Удачи. |
| Автор: Гость_qwerty 29.7.2004, 08:33 |
| ну ты просто маньяк ассемблера |
| Автор: qwerty=-=root 29.7.2004, 09:33 | ||
пишу значится такой код, но результата нет !!!?????
|
| Автор: Girder 29.7.2004, 10:38 | ||
| qwerty=-=root и Гость_qwerty - это один человек? Зарегился на конец-то? Подправил твой код, но вылизовать(не влане ошибок) тебе придется его самому:
Удачи. |
| Автор: qwerty=-=root 29.7.2004, 10:49 |
| пасиб..... зарегился угу Добавлено @ 10:55 еще раз спасиб..... работает гуд, оформил тему эту в класс... такой еще вопросик??? Может функция какая есть для получения всех установленных кодировок??? |
| Автор: Girder 29.7.2004, 12:02 | ||||
|
| Автор: qwerty=-=root 29.7.2004, 12:23 |
| да не то чтоб не понравилось.... просто уже написал на pascal, но чтото не фурычало..... а функция ..... ну к примеру эксплорер берет эту инфу об установленных кодировках???? ну вот может кто знает это место??? |
| Автор: Girder 29.7.2004, 13:40 | ||
| Да полно способов. Самый простой:
Через COM можно получить более подробный результат, можно от сюда выдирать: HKEY_CLASSES_ROOT\MIME\Database, есть ещё способы. Почитай, очень много информации: http://msdn.microsoft.com/library/en-us/wceielng/html/ceconInternetExplorerMultipleLanguageAPI.asp P.S. у Mlang есть очень интересная функция: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceielng/html/cerefConvertINetString.asp |
| Автор: qwerty=-=root 29.7.2004, 14:30 |
| IsConvertINetStringAvailable - функция конечно хорошая, но у меня идет сопоставление типа: windows-1251 по нему ищу 1251 или koi8-r, тогда 20866. Так что мне надо получить именно этот идентификатор из описания.... Код конечно тоже класный, но он мне не дает нужного результата... HKEY_CLASSES_ROOT\MIME\Database - вот это самое интересное !!!! смотреть надо charset и строчку в hex internetencoding еще раз пасиб !!!! |
| Автор: Girder 29.7.2004, 15:29 |
| Помоему лудше будет так: а)построить предворительную таблицу по анализу ветки CodePage. Смотри: 1)Номер есть + 2)Description есть + (а-ля IE) 3)WebCharset, а если его нет, то смотрим BodyCharset + 4)Шрифты есть + б)Далее до заполнить таблицу по анализу ветки Charset в)и окончательно, через EnumSystemCodePages разбросать: что установленно, а что нет... Удачи. Добавлено @ 15:32 А на счет IsConvertINetStringAvailable, я тебе по другому поводу постил. |
| Автор: qwerty=-=root 29.7.2004, 15:51 |
| я уже так и сделал Добавлено @ 15:52 там еще alias есть, типа ссылка на другую кодировку, тож надо учесть !!!! |
| Автор: qwerty=-=root 30.7.2004, 08:09 | ||||
| Значится так !!! 1)Типа структура для кодировок
2) Читаем доступные кодировки из HKEY_CLASSES_ROOT\MIME\Database
Да и не забудьте через EnumSystemCodePages найти установленные !!!! Добавлено @ 08:11 функцию поиска думаю писать ни к чему |
| Автор: StayAtHome 31.7.2004, 12:39 |
| Товарищи, а такой темы в DRKB нету. Большая просьба добавить. |
| Автор: qwerty=-=root 2.8.2004, 08:09 |
| Куда куда добавить???? |
| Автор: Girder 2.8.2004, 15:25 |
| qwerty=-=root читай здесь http://forum.vingrad.ru/index.php?showtopic=22229&st=0 |
| Автор: Nicholas 27.12.2004, 09:09 |
| Люди, я вообще чайник дайте мне рабочии процедуры перекодировки из 866 в 1251, мне надо в мемо считать TXT в дос кодировке!!! |
| Автор: Alex 11.2.2005, 08:01 | ||||||
Добавлено @ 08:02
В DRKB не обещаю, а в FAQ обязательно добавлю. |
| Автор: Гость_Nicholas 15.6.2005, 17:53 | ||
Давненько я сюда не заглядывал...
Сейчас уже не помню, но кажется буквы "к" и еще какие-то не корректно конвертирует. После длительного мучения с разными кодировками - пришел к выводу, что таблицы для каждой кодировки это очень правильно, хотя иногда и нудно! |
| Автор: splash666 13.12.2005, 19:31 |
| Хорошая тема. Может и мне поможете? У меня есть файл. Частично забит мусором, но в нём встречаются предожения в UCS2 Big Endian. Как мне всё это дело вывести в memo? Сторонние компоненты не катят. либо платные, либо бесполезные. Хотелось бы процедуру перекодировки. Но на MS сайте не нашёл ни одного упоминания об UCS2... Помогите! |