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

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

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

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

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

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

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

Std::string - C++
никак не пойму чем отличаются методы append и assign у std::string?

std::string - C++
Здравствуйте! У меня есть std::vector<std::string> Подскажите пожалуйста как быстро и красиво можно перевести i-тый элемент вектора в...

std::string - C++
Господа, подскажите где можно поглядеть методы string-a литературы никакой под рукой нет, а гуглить в лоб что-то результаттов не дает. ...

std:string - C++
1. Поддерживает ли этот класс сравнение целиком строк? Каков синтаксис сравнения строк? 2. Поддерживает ли этот класс конкатенацию? Каков...

std::string в char* - C++
Можно ли привести std::string к указателю на нуль-терминальную строку? Как?

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

char* vs std::string - C++
При чтении чужих сорцов, обратил внимание, что в роли аргументов для функций/методов, как правило используются указатели на массивы чаров,...

std::string to SCtring - C++
После выполнения этого кода выводится не "123" а какие-то каракули как это исправить? string s = "123"; ...

std::string, потоки - C++
Доброго времени суток! Использую такую конструкцию: while(...) { while(getline(dic, buf2)) { if (buf2 <...

PTCHAR в std::string - C++
Никак не могу парсить переменную Line. Пишет - выражение должно иметь тип класса PTCHAR line = wcstok_s(buffer, TEXT("\r\n"), &context);...

Аналог std::string - C++
Имеется некоторый класс, обеспечивающий работу с символами UTF-8. Назовём его uchar. Можно ли простым способом организовать класс ustring,...

int to std::string - C++
Не подскажите как перевести int в std::string


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

Или воспользуйтесь поиском по форуму:
Tmin100
6 / 6 / 0
Регистрация: 12.10.2012
Сообщений: 71
12.10.2012, 21:02  [ТС]     Одно и двух байтовые кодировки и std::string #5
Так, пересохранил файл в формат cp1251, в консоле выводится крякозябрами, как установить нужную локаль консоли линукс? По умолчанию консоль нормально выводила UTF-8, но работать с ним не очень просто...

Добавлено через 14 минут
Понял, у меня в системе просто не стоит локаль CP1251, чтож, будем ставить...
Yandex
Объявления
12.10.2012, 21:02     Одно и двух байтовые кодировки и std::string
Ответ Создать тему
Опции темы

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