Некорректное отображение символа Юникода

Рейтинг: 0Ответов: 1Опубликовано: 28.02.2015

Я только начинаю учиться. ) Пожалуйста, помогите, инет перерыл, ничего понятного не нашёл. ( Программа на C++ выводит вместо символа Юникода значок вопроса, в чём ошибка?

#include "stdafx.h" 
#include <iostream>
#include <clocale>
using namespace std; 
int main() 
{ 
  setlocale(LC_CTYPE, "rus"); 
  cout << "Здесь должен быть значок фунта : "<< '\u00A3' << endl; 
  system("pause"); 
  return 0; 
}

И как правильно выводить символы Юникода? (Работаю на Win7 MVC++ 2013 ultimate.)

Ответы

▲ 1

Сначала я хотел написать: у вас есть такая локаль, как rus? Я, например, себе в системе проставил ru_RU.utf8 (Узнать список существующих можно с помощью команды locale -a)...

Ух, елки, это в Win$... Вы меня просто сбили с толку установкой локали.

Во всех современных осях, за исключением Win и наркоманов с koi8, уже используется Unicode в системе из коробки.

Для вас есть вариант что-то типа этого:

#include <iostream>
#include <io.h>
#include <fcntl.h>

int main() {
    _setmode(_fileno(stdout), _O_U16TEXT);
    std::wcout << L"Wow-wow! \u00A3!\n";
}

Нашел здесь: http://www.cplusplus.com/forum/beginner/86585/