Форум программистов, компьютерный форум CyberForum.ru

Как выводить строки в unicode? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
03.07.2011, 16:56     Как выводить строки в unicode? #1
почему не выводит на экран строки в формате unicode? в win32 прикрасно работает, а в консоле не выводит...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <windows.h>
using namespace std;
 
int main()
{
    WCHAR word[]=L"привет";
    wcout << word << endl;
 
    system("pause");
    return 0;
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
03.07.2011, 17:15     Как выводить строки в unicode? #2
Olejeg85,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
#include <locale>
 
int main()
{
    std::wcout.imbue(std::locale(".866"));
    std::wstring str = L"Текст строки...";
 
    std::wcout << str << std::endl;
 
    return 0;
}
grizlik78
Эксперт С++
 Аватар для grizlik78
1884 / 1416 / 102
Регистрация: 29.05.2011
Сообщений: 2,961
03.07.2011, 17:17     Как выводить строки в unicode? #3
достаточно было просто добавить
C++
1
setlocale(LC_ALL,"");
Впрочем, в линуксе всё-равно правильно работать не будет.
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
03.07.2011, 17:21  [ТС]     Как выводить строки в unicode? #4
а без setlocale(LC_ALL,""); никак не будет?
grizlik78
Эксперт С++
 Аватар для grizlik78
1884 / 1416 / 102
Регистрация: 29.05.2011
Сообщений: 2,961
03.07.2011, 17:24     Как выводить строки в unicode? #5
Так или иначе локаль указать придётся.
Хотя про линукс я не совсем прав. Как раз setlocale(LC_ALL, "") помогает в обоих случаях.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
03.07.2011, 17:32     Как выводить строки в unicode? #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
void main(void) {
    
setlocale(LC_ALL, "rus_rus.866");
 
wprintf(L"Вот строка в Unicode, ведите что-нибудь:\n");
 
wchar_t str[32];
wscanf(L"%s", str);
    
wprintf(L"%s\n", str);
 
system("pause");    
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2011, 17:38     Как выводить строки в unicode?
Еще ссылки по теме:

C++ Как получить код символа unicode в std::wstring?
При вводе строки выводить только цифры C++
C++ Формат строки в кодировке Unicode?

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

Или воспользуйтесь поиском по форуму:
grizlik78
Эксперт С++
 Аватар для grizlik78
1884 / 1416 / 102
Регистрация: 29.05.2011
Сообщений: 2,961
03.07.2011, 17:38     Как выводить строки в unicode? #7
Цитата Сообщение от xAtom Посмотреть сообщение
setlocale(LC_ALL, "rus_rus.866");
Всё-равно не понимаю, зачем указывать системо-зависимую локаль, когда пустая строка "" работает точно также, только в десять раз лучше
Yandex
Объявления
03.07.2011, 17:38     Как выводить строки в unicode?
Ответ Создать тему
Опции темы

Текущее время: 14:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru