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

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

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

Собственно вопрос в шапке, вот примеры:
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2017, 16:53
Ответы с готовыми решениями:

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

В директории сохранения файла русские символы заменяются на непонятные символы
При сохранении файл через диалоговое окно русские символы заменяются на непонятные тем самым Window...

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

Широкие символы и клавиша забой
добрый день столкнулся с такой проблемой, ввожу строку , кириллицу в консольной тестовой...

4
Любитель чаепитий
3463 / 1585 / 492
Регистрация: 24.08.2014
Сообщений: 5,486
Записей в блоге: 1
01.02.2017, 17:14 2
Кодировку на UTF-8 в файле смените.
2
4 / 4 / 0
Регистрация: 22.09.2009
Сообщений: 69
01.02.2017, 17:28  [ТС] 3
Спасибо огромнейшее, заработало, и код символа теперь корректный
0
2 / 2 / 0
Регистрация: 28.11.2019
Сообщений: 47
19.12.2019, 23:38 4
GbaLog-, Дружище, а как ее сменить?
0
Любитель чаепитий
3463 / 1585 / 492
Регистрация: 24.08.2014
Сообщений: 5,486
Записей в блоге: 1
20.12.2019, 09:59 5
Цитата Сообщение от serga_70 Посмотреть сообщение
Дружище, а как ее сменить?
в текстовом редакторе.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2019, 09:59

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

cout и Unicode - как выводить широкие символы
Решил перевести свое консольное приложение на Unicode и столкнулся с такой проблемой: cout <<...

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


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

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

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