Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 876
1

Пропадают русские символи при конвертации из wchar_t to char

22.05.2015, 16:27. Показов 1651. Ответов 10
Метки нет (Все метки)

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
string WcharToChar( const wstring& str){
 
    char * res = (char*)malloc(str.length());
    ZeroMemory(res,str.length());
    res[wcstombs(res,str.c_str(),str.length())] = L'\0';
 
    string result(res,str.length());
    return result;
}
 
wstring str;
str = L"https://www.google.ru/search?q=inurl:id=5 морковка&start=0&client=opera";
 
string res;
 
res = WcharToChar(str );
В итоге res содержит только https://www.google.ru/search?q=inurl:id=5

я не пойму почему wcstombs не возващает русских символов, или не в этом проблема?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2015, 16:27
Ответы с готовыми решениями:

Сложности при конвертации из char в unsigned char *
Народ, всем привет, Необходимо конвертировать массив данных типа char production_data в...

ajaxSubmit + русские символи
Использую ajaxSubmit и после отправки формы мне возвращается результат, в котором виводиться сама...

При чтении из файла, пропадают русские буквы
Подскажите пожалуйста. Разбираю пример....

Ошибка при переводе значения из переменной char в переменную wchar_t
День всем добрый! Подскажите, пожалуйста, что я делаю не так? Я пытаюсь использовать функцию...

10
7060 / 6072 / 2763
Регистрация: 14.04.2014
Сообщений: 26,065
22.05.2015, 17:00 2
Должна быть установлена русская локаль.
C++
1
std::locale::global(std::locale(""));
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 876
22.05.2015, 19:17  [ТС] 3
хм, поставиль локаль, функция нормально отработала, теперь функция recv (socket) не считывает весь ответ от сервера, я так понял мне нужно эту локаль постоянно менять? если да то как? ( и почему так тупо всё устроено)) )
0
Форумчанин
Эксперт CЭксперт С++
8170 / 5020 / 1436
Регистрация: 29.11.2010
Сообщений: 13,453
22.05.2015, 19:33 4
Из какой кодировки в какую хотите перегонять?
0
7060 / 6072 / 2763
Регистрация: 14.04.2014
Сообщений: 26,065
22.05.2015, 19:36 5
Можно переключать локаль в нужных местах. Вот локаль по умолчанию:
C++
1
std::locale::global(std::locale("C"));
Есть ещё функции Windows для перекодирования.
Ну а зачем ты пользуешься древними кодировками? Используй везде wstring и wchar_t.
0
58 / 45 / 11
Регистрация: 16.09.2014
Сообщений: 124
22.05.2015, 21:08 6
ТС у вас утечка памяти в функции.
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 876
22.05.2015, 21:40  [ТС] 7
Цитата Сообщение от MrGluck Посмотреть сообщение
Из какой кодировки в какую хотите перегонять?
эм, безпонятия

Цитата Сообщение от nmcf Посмотреть сообщение
Ну а зачем ты пользуешься древними кодировками? Используй везде wstring и wchar_t.
ну так сокеты только с char работают, или я чего-то не понимаю.?

Цитата Сообщение от nmcf Посмотреть сообщение
Есть ещё функции Windows для перекодирования.
а эти функции избавят от проблем с локалью? эсли да то подскажите их название

Цитата Сообщение от Pancir Посмотреть сообщение
ТС у вас утечка памяти в функции.
мм, а где?
0
7060 / 6072 / 2763
Регистрация: 14.04.2014
Сообщений: 26,065
22.05.2015, 21:47 8
Ну функции Windows локаль не требуют переключать, хотя что в этом сложного?
0
58 / 45 / 11
Регистрация: 16.09.2014
Сообщений: 124
22.05.2015, 22:07 9
Цитата Сообщение от mh-coder Посмотреть сообщение
мм, а где?
res кто удалять будет?
1
Форумчанин
Эксперт CЭксперт С++
8170 / 5020 / 1436
Регистрация: 29.11.2010
Сообщений: 13,453
22.05.2015, 22:21 10
Цитата Сообщение от mh-coder Посмотреть сообщение
эм, безпонятия
Так методы перевода от этого отличаются.
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 876
23.05.2015, 09:45  [ТС] 11
Цитата Сообщение от MrGluck Посмотреть сообщение
Так методы перевода от этого отличаются.
а в какой лучше? я прос не совсем понимаю зачем кодировка нужна в данном случае((
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2015, 09:45

Не читаются русские символы в wchar_t
привет Что-то не срастается при чтении русских символов их файла. Файл file.txt содержит строку...

Wchar_t to char
я тут обнаружил любопытнейшую вещь, оказывается можно просто присваивать char = wchar_t и наоборот...

char и wchar_t
Здравствуйте! Помогите разобраться вот в чем. Допустим у меня есть Edit Control с которого мне...

Пропадают русские буквы на веб сервере
Привет! Проблема в следующем: .Net, ASPX. Есть файл-шаблон на сервере. Файл читается и пишеться...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.