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

Юникод в Си++

16.08.2011, 13:44. Просмотров 3675. Ответов 7
Метки нет (Все метки)

Здравствуйте.

C++
1
2
3
4
5
6
7
8
9
10
int main(int argc, char *argv[])
{
 
    wstring s1 = L"abracadabra";
    cout << s1.size() << endl; // 11
    wstring s2 = L"абракадабра";
    cout << s2.size() << endl; // 22
 
    getchar();
}
Вроде бы все как надо: файл у меня в utf-8, а она экономит байт на латинских символах. Но вот в чём вопрос. wstring - это контейнер wchar_t, а у них размер 2 байта и поэтому, вроде бы, у обеих строк длина должна быть 22.
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.08.2011, 13:44
Ответы с готовыми решениями:

Юникод в с++
Есть код с использованием wstring,wchar_t,wcin,wcout в котором открывается файл в кодировке Юникод...

Юникод в десятеричной
Доброго времени суток, есть ли где-то юникод в десятеричной системе? Просто в программе огромный...

Iswalpha не переваривает юникод
Задача - проверить является ли символ частью слова. Под частью слова я подразумеваю символы любых...

Юникод в двоичную систему
Добрый день! Подскажите, как из файла прочитать знак (на русском языке), после чего напечатать на...

7
Android Programmer
139 / 140 / 10
Регистрация: 08.12.2010
Сообщений: 421
16.08.2011, 13:48 2
jerdeks,
size() возвращает не размер в байтах, а количество элементов в контейнере. и во втором случае тоже должно быть 11.
0
1 / 1 / 0
Регистрация: 19.04.2009
Сообщений: 13
16.08.2011, 13:50  [ТС] 3
Бинарник выложить? Хотя, я тоже так думал всегда, но факт - пишет во втором случае 22
0
Android Programmer
139 / 140 / 10
Регистрация: 08.12.2010
Сообщений: 421
16.08.2011, 13:57 4
jerdeks, не планировал компилировать...
как уже и говорил, size() возвращает количество элементов в контейнере, а не их размер в байтах.
1
Миниатюры
Юникод в Си++  
1 / 1 / 0
Регистрация: 19.04.2009
Сообщений: 13
16.08.2011, 14:21  [ТС] 5
=) А теперь конвертни исходник в утф-8. И тогда именно так, как у меня будет и я не понимаю почему
0
Android Programmer
139 / 140 / 10
Регистрация: 08.12.2010
Сообщений: 421
16.08.2011, 14:33 6
Цитата Сообщение от jerdeks Посмотреть сообщение
=) А теперь конвертни исходник в утф-8. И тогда именно так, как у меня будет и я не понимаю почему
а ну да, все верно, ведь там запись то будет
абракадабра
0
1 / 1 / 0
Регистрация: 19.04.2009
Сообщений: 13
16.08.2011, 14:36  [ТС] 7
угу. и это гениально - чтобы работать с юникодом иходник должен быть в 8ми битной кодировке
0
Делаю внезапно и красиво
Эксперт С++
1309 / 1224 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
16.08.2011, 17:10 8
Цитата Сообщение от jerdeks Посмотреть сообщение
угу. и это гениально - чтобы работать с юникодом иходник должен быть в 8ми битной кодировке
utf-8 это не юникод. Не совсем юникод. В utf-8 символы могут занимать от 1 до 8(кажется) байт. Чтобы их сохранить производится трансляция юникода в мультибайт.
Чтобы юникод сохранялся в двухбайтном виде (без потери русских букаф), нужно сохранять в utf-16.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.08.2011, 17:10

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

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

Юникод символ в консоли
Здорова! Есть вопрос, от можно ли в консоли как то вывести юникод символы? Допустим есть код...

Перевод символа в Юникод
Подскажите пожалуйста как закодировать например вот такую строку привет что бы она стала такой?...

Юникод. Шахматные символы
Всем привет. Хочется написать консольные шахматы (цензура), но вот в чем загвоздка: как правильно...


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

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

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