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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Tmin100
6 / 6 / 0
Регистрация: 12.10.2012
Сообщений: 71
#1

Одно и двух байтовые кодировки и std::string - C++

12.10.2012, 19:47. Просмотров 1193. Ответов 4
Метки нет (Все метки)

Загружаю в std::string текст в юникоде, всё отлично выводится, но когда я стал получать string::length(), то получил количество байт в строке, а не символов, также криво работает работа с символами (операция []). Подскажите, как работать с двухбайтовой кодировкой через string?
Или в какую кодировку сохранить тест, чтобы нормально отображался в linux консоли (есть русские буквы)?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2012, 19:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Одно и двух байтовые кодировки и std::string (C++):

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’ - C++
private: std::string firstName; }; std::string ClientData::getFirstName() const{ return firstName; } Дает в итоге...

Сравнение двух std::string на совпадение без учёта регистра - C++
Нужно сравнить две строки на одинаковость, но без учёта регистра. Чтобы name и Name и NaME считывались как одинаковые. Как это сделать?

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами - C++
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...

Реализация класса MyString. Стандартная библиотека, std::string, std::vector - C++
как добавить реализацию конкатенации строк через перегрузку оператора &quot;+=&quot; в классе MyString и почему ошибка выдается???#include...

Операция std::cout для Объекта типа std::string - C++
Кто детально объяснит почему не выводит ? Дает вот так &quot;Отсутствует оператор &quot;&lt;&lt;&quot;, соответствующий этим операндам&quot; void...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
12.10.2012, 19:55 #2
Гляньте тут
http://www.cyberforum.ru/blogs/99405/blog807.html
0
Tmin100
6 / 6 / 0
Регистрация: 12.10.2012
Сообщений: 71
12.10.2012, 20:07  [ТС] #3
Так, понял, нужно использовать специальные std::wstring, которые держат двухбайтовый юникод.
А в какую кодировку можно сохранить файл, чтобы была стандартная 256 символьная ASCII кодировка?
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
12.10.2012, 20:24 #4
Цитата Сообщение от Tmin100 Посмотреть сообщение
А в какую кодировку можно сохранить файл, чтобы была стандартная 256 символьная ASCII кодировка?
стандартная это 128 символов, а cp1251 - это расширенная ASCII. Используйте обычный string. wstring нужен для поддержки большого множества языков,как пример - китайский
0
Tmin100
6 / 6 / 0
Регистрация: 12.10.2012
Сообщений: 71
12.10.2012, 21:02  [ТС] #5
Так, пересохранил файл в формат cp1251, в консоле выводится крякозябрами, как установить нужную локаль консоли линукс? По умолчанию консоль нормально выводила UTF-8, но работать с ним не очень просто...

Добавлено через 14 минут
Понял, у меня в системе просто не стоит локаль CP1251, чтож, будем ставить...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2012, 21:02
Привет! Вот еще темы с ответами:

Передача функции указатель на элемент std::vector<std::string> - C++
Доброй ночи тем, кому не спится (или живет в другом часовом поясе:p)! Есть функция, требующая в качестве параметра указатель на...

Как правильно перевести std::wstring в std::string ? - C++
Собственно как? :)

Почему std::string_view МЕДЛЕННЕЕ, чем std::string? - C++
Всем привет! Нужно найти количество уникальных строк в больших текстовых файлах (размером до нескольких гигабайт). Почему в...

Как привести std::wstring к std::string? - C++
Как привести std::wstring к std::string?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.10.2012, 21:02
Ответ Создать тему
Опции темы

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