![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
speed0ver1 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 31.7.2008 Репутация: нет Всего: нет |
У меня такая проблема:
вот код
из Java передаю строку в MFC DLL, затем стандартными функциями получаю строку типа const char* и вызываю функцию, которая должна прочитать файл, путь к которому содержится в строке. Все работает, пока не появляется в пути каталог или файл с русскими буквами. Пробовал отобразить строку с помощью AfxMessageBox, отображаются кракозябры. Расскажите, как мне перекодировать строку, чтобы C++ ее понимал. Прбовал так:
В этом случае первый AfxMessageBox показывает правильную строку, а второй - просто квадратики. Подскажите, что делать. |
||||
|
|||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
GetStringUTFChars возвращает строку в UTF, для русских букв ее придется конвертировать в Unicode а затем обратно в русскую кодовую страницу, которая кстати равна 1251 а не 866. Используй метод GetStringChars для получения сразу Unicode и соотвествующую Unicode версию функции работы с файлом. Или используй комбинацию MultiByteToWideChar(CP_UTF8) и WideCharToMultiByte(1251) (Кодировка 866 - для консоли) |
||||
|
|||||
speed0ver1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 31.7.2008 Репутация: нет Всего: нет |
Комбинацию MultiByteToWideChar(CP_UTF8) и WideCharToMultiByte(1251) использовал. Страницу 866 поставил уже когда не заработало с 1251. Не помогает. Файловую функцию, работающую с Unicode, использовать не могу, поскольку функции работы с файлами в модуле, который для меня закрыт.
Может еще как-то можно поправить ситуацию? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |