Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Vetos
4 / 4 / 2
Регистрация: 22.09.2009
Сообщений: 69
#1

Широкие символы wchar_t wstring не хотят принимать русские символы - C++

01.02.2017, 16:53. Просмотров 426. Ответов 2
Метки нет (Все метки)

Собственно вопрос в шапке, вот примеры:
C++
1
std::wstring str = L"блин комом";
и такое:
C++
1
wchar_t stroka[188] = L"abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ абвгдеёжзийклмнопрстуфхцчшщъыьэюя АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
не работает, вылетает с ошибкой illegal character encoding in string literal. Причом с массивом ругается именно на первый встречающийся русский символ "а". Без приставки L соответственно ошибка про char wchar_t.

Перелопатил интернет, уже голова кругом. Вообще я хочу получить код символа в юникоде, мне это нужно чтобы потом считать текстуру глифа в библиотеке FreeType. проблема в том что в трютайп шрифтах всё хранится в юникоде. Хотелось работать именно с русскими буковками, тут и хотел применить wchar_t чтоб потом считать код символа.
Вот такая запись работает:
C++
1
wchar_t w='Ы';
Но код символа там все равно анси, и в при сборке вылазят варнинги illegal character encoding in string literal.
Делаю приставку L'Ы', и варнинг превращается в ошибку.
Перепробовал всяческие setlocale, но при любых параметрах функция возвращает (null). Если задать просто
C++
1
setlocale(LC_ALL,"");
выводит C.

Использую VisualStudio 2015 Community, пишу под андроид, использую нестандартный NDK - Crystax NDK. Там по заявлению разработчиков организована полная поддержка локалей, нежели в гугловском NDK. Может косяк гдето в этом NDK.

Может есть какая нибудь функция getcode('Ж') которая вернет код символа в юникоде, или использовать дедовский метод - вычислять значение кода символа в анси, затем прибовлять сдвиги чтобы получить значение в юникоде. просто считаю этот метод не совсем нормальным. Посоветуйте что нибудь для разрешения этого казалось бы простого вопроса. Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2017, 16:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Широкие символы wchar_t wstring не хотят принимать русские символы (C++):

Широкие символы + Unicode
Доброго времени суток всем) На эту тему материала много, но он весь...

Не получается вывести широкие символы
wchar_t *p = new wchar_t; p = L"Текст"; wcout << p << endl;

Широкие символы в Code Blocks
Code Blocks 13.12, mingw 4.7.1, почему не проходит компиляция такого кода? ...

Вывести символы wchar_t
Здраствуйте, почему-то не получается записать в файл символы wchar_t,...

Как убрать все управляющие символы из wchar_t ?
Читаю все файлы в папке подряд (текстовые разумеется). Записываю содержимое в...

Русские символы
Написал программу. Компилю из под cygwin g++. Ругается: 4.cpp:27:18:...

2
GbaLog-
Любитель чаепитий
3156 / 1462 / 462
Регистрация: 24.08.2014
Сообщений: 5,180
Записей в блоге: 1
Завершенные тесты: 2
01.02.2017, 17:14 #2
Кодировку на UTF-8 в файле смените.
2
Vetos
4 / 4 / 2
Регистрация: 22.09.2009
Сообщений: 69
01.02.2017, 17:28  [ТС] #3
Спасибо огромнейшее, заработало, и код символа теперь корректный
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2017, 17:28
Привет! Вот еще темы с решениями:

Русские символы
Подскажите пожалуйста как сделать правильный вывод русского алфавита, так как...

Русские символы!!!!
Для русских символов я использую библиотеку #include <russian.h> Все работает...

Не выводятся русские символы
Доброго времени суток, столкнулся с такой проблемой, сегодня решил поставить vs...

Не подсчитывает русские символы
Не пойму в чём загвостка; логически вроде всё верно: #include <iostream>...


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

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

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