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

Как выводить utf-8 на экран? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Редактор "Схема алгоритмов" - принадлежит ли точка сложной фигуре http://www.cyberforum.ru/cpp-beginners/thread694512.html
Как определить, что точка принадлежит сложной фигуре. С простыми: круг, прямоугольник вроде понятно. А как быть с такими, как на картинке. Причем, в PowerDisigner'е объект выделяется по клику только...
C++ Нужно оптимизировать Есть задание, есть готовый код. Но он не проходит скоростной режим, нужно оптимизировать, помогите плз) Требуется найти количество строк заданной длины n, состоящих из латинских строчных букв, не... http://www.cyberforum.ru/cpp-beginners/thread694502.html
C++ Определить количество членов последовательности, являющихся квадратами четных чисел
напишите пожалуйста код на C ++ для задачи "даны натуральные числа n, a1...an, определить количество членов ak последовательности a1 ... an, являющихся квадратами четных чисел"
C++ Не работают операторы сравнения в switch
Вот блин че то он ругаеться на знаки сравнения в case. Походу тут они не поддерживаються? Или как мне это реализовать.. таковы условия #include <iostream> using namespace std; int main() { ...
C++ Связной список в Си++ http://www.cyberforum.ru/cpp-beginners/thread694489.html
Помогите организовать связной список. Здание:Организовать связной список, хранящий фамилии по алфовиту и оклады 10-ти сотрудников отдела. Оклад - вещественное число с двумя знаками после запятой из...
C++ Вычисление полинома n порядка и составление матрицы.? Задача 1 Составить программу для вычисления значения полинома n-го порядка (n<30 и вводится с клавиатуры) y=a1xn+a2xn-1+...+anx+an+1, если массив A задан как константа, а значение аргумента x... подробнее

Показать сообщение отдельно
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1

Как выводить utf-8 на экран? - C++

11.11.2012, 13:44. Просмотров 3600. Ответов 11
Метки (Все метки)

Как у вас обстоят дела с выводом UTF-8 на консоль windows? UTF-16 она не поддерживает, но похоже что у нее (или у меня) и с UTF-8 проблемы.
Имеется код:
C++
1
2
3
4
5
6
7
8
9
10
11
#include "convert.h"
#include <iostream>
 
int main()
{
    std::wstring text = L"El es el dueГ±o de toda la tecnologГ*a.";
    std::wstring textCyrillic = L"А также немного кириллицы :-)";
 
    std::cout << Convert::utf16ToUtf8( text ) << std::endl;
    std::cout << Convert::utf16ToUtf8( textCyrillic ) << std::endl;
}
Одну строку консоль с горем пополам выводит, но стабильно обрубает первый символ, если он представляется последовательностью более чем из одного байта:
��l es el dueño de toda la tecnología.
Попробовал прилепить BOM в начале, вопросиков стало 3 (nbsp + два вопроса за первый символ).

Как оказалось, после такого вывода дальше вывести что-либо уже не выходит. Вывод второй строки не оставляет никаких следов в консоли.

Такая же ситуация с powershell, идущим в комплекте с Windows 7 SP1 x64. Не выводится даже line-feed, в итоге вывод принимает следующий вид:
��l es el dueño de toda la tecnología.PS C:\Users\Hertz\dropbox\hertz>
Под Mac OS и Linux все работает, в MinGW проблемы. С vc++ компилятором пока не пробовал.

И еще вопрос, под Windows следующий код:
C++
1
std::locale( "ru_RU.UTF-8" )
бросает исключение с текстом "could not create c locale". Повторяется и с mingw g++, и с vc++. У кого-нибудь данный код работает?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru