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

Работа с русским текстом в linux

09.09.2015, 13:48. Просмотров 577. Ответов 4
Метки нет (Все метки)

Пишу консольное приложение в Code::Blocks на Ubuntu 15.04.
Выводит он русский текст и без всяких функций, а вот с чтением проблема, насколько я понял.
Суть такова: я файла берётся строка, и у первого элемента массива проверяется регистр. Я пробовал и islower, и сам писал функцию, но с русскими буквами работать не хочет.
В винде, я думаю, это решилось бы <windows.h> сетконсолями (ЦП и ОТПУТ), а в линуксе всё перелопатил, не могу испрвавить.
Посоветуйте что делать, пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2015, 13:48
Ответы с готовыми решениями:

idhttp - работа с русским текстом
Проблема такая strRead = Http1-&gt;Get(strURL); русские буквы считываются каракулями - как их...

Blob с русским текстом
Всем привет! Есть csv файл, который записан в базе в blob. Нужно распарсить каждую строчку, взяв...

Проблема с русским текстом в форме
С некоторых пор введенный по-русски текст из формы передается в таком виде...

JSON с русским текстом в юникоде
Экспериментирую как можно было бы выводить данные в json-формате непосредственно в файл с двумя...

4
6900 / 5965 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
09.09.2015, 14:03 2
Файл в кодировке utf-8? Надо строку после считывания перекодировать в wchar_t и затем уже islower() и прочее. Или используй codecvt, если его прикрутили в Linux.
0
0 / 0 / 0
Регистрация: 22.05.2015
Сообщений: 9
09.09.2015, 14:27  [ТС] 3
Да, в utf-8. Какой командой перекодировать?
0
2630 / 1809 / 544
Регистрация: 05.06.2014
Сообщений: 5,233
09.09.2015, 14:37 4
Цитата Сообщение от Игорь Теплов Посмотреть сообщение
Да, в utf-8. Какой командой перекодировать?
boost::locale::conv::utf_to_utf . Есть еще введенный в C++11 std::codecvt, но неудобный же.
0
6900 / 5965 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
09.09.2015, 14:43 5
C++
1
2
3
4
5
char s[100];
wchar_t ws[100];
 
setlocale (LC_ALL, "");
mbstowcs(ws, s, 100);
C codecvt сразу будет считывать строка wchar_t или wstring.
C++
1
2
3
4
#include <codecvt>
 
std::wifstream ifile(L"data.txt");
ifile.imbue(std::locale(std::locale(), new std::codecvt_utf8<wchar_t, 0x10ffffUL, std::codecvt_mode::consume_header>));
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.09.2015, 14:43

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

Сохранение вебстраницы с русским текстом
написал код:using System; using System.Collections.Generic; using System.ComponentModel; using...

Как исправить ошибку с русским текстом
Если ввожу логин английскими то все работает нормально, а если ввожу логин русскими, то происходит...

SELECT не находит строку с русским текстом
Есть база данных в кодировке utf8: Структура 1 id int(12) UNSIGNED Нет Нет ...

При сохранение из Mathcad 15 в 11 проблема с русским текстом
При сохранение документа из Mathcad 15 в Mathcad 11 пропадает русский текст, вместо него &quot;?&quot;. ...

Preg_replace не работает с русским текстом и case insensetive
Здравствуйте! Как я понял, тема известная. Гугл, в основном, выдает ссылки на темы как минимум...

Проблемы с русским текстом при получении его из полей
Добрый день. Имеется следующая проблема: Если русский текст указан напрямую в коде разметки, то...


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

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

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