Вопрос № 51867: Добрый день!
Имеется некоторая строка символов, содержащая русский текст (Windows-1251). Я поместил строку, скажем, в базу данных, откуда я обратно получил эту же строку, но в другой кодировке (скажем, Windows 1250). ВОПРОС: как штатными сердства...
Вопрос № 51.867
Добрый день!
Имеется некоторая строка символов, содержащая русский текст (Windows-1251). Я поместил строку, скажем, в базу данных, откуда я обратно получил эту же строку, но в другой кодировке (скажем, Windows 1250). ВОПРОС: как штатными сердствами Win API выполнить перекодировку обратно в Windows 1251. Или более общий вопрос: как стандартными средствами Windows API выполнять перекодировку текста между кодовыми страницами.
Спасибо
Отвечает: Rusfaq mustdie
Здравствуйте, Валерий Кравцов!
Нет таких средств/функций. Нужно чтобы типы в базе данных и программе были одинаковыми.
Или использовать unicode.
--------- Rusfaq mustdie
Ответ отправил: Rusfaq mustdie (статус: Заблокирован)
Ответ отправлен: 11.08.2006, 17:11 Оценка за ответ: 1 Комментарий оценки: Спасобо за ответ - но: вопрос не касался собственно баз данных. Мой вопрос был сформулирован после слова "ВОПРОС". Всё что до него - преамбула :)
Отвечает: Physicist
Здравствуйте, Валерий Кравцов!
Думаю, самый простой способ - это сначала через MultiByteToWideChar перевести строку в Unicode, а затем через WideCharToMultiByte - в строку в нужной кодировке. В обеих функциях первым параметром передается кодировка строки.
Меня больше смущает вопрос - как в 1250 кодировке может храниться русский текст из 1251?
Приложение:
Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 11.08.2006, 17:17 Оценка за ответ: 5 Комментарий оценки: :) Спасибо, попробую Если хотите подробности - пожалуйста: на сервер Firebird посредством библиотеки FIBPlus через класс TpFIBSecurityService отправляю ФИО пользователя (русскими буквами). Обратно получаю крокозяблики. Откуда я знаю, в каких кодировках эта информация хранится??? Я вижу результат.