![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 2 Всего: 12 |
Всем привет
Возникла задача (и интерес) реализовать упаковку и распаковку текста в base64, изобретать велосипед не стал почитал http://ru.wikipedia.org/wiki/Base64 посмотрел http://base64.sourceforge.net/b64.c Все работает замечательно, НО пока в ASCII диапазоне... далее не уверен ни в чем, как только появляется юникод суть метода под аски(как я понял) собрать из 3 байтовых последовательностей 4 байтовые, посредством выдергивания 6 битовых значений и использования их как индексы в условном алфавите, нехватающие же до 3 байтовых значений заменять дополнителем (для миме это '='). В вики так же сказано, что для передачи юникода (по крайней мере utf16 представления) надо использовать (или не надо) так называемый Изменённый Base64 и к сожалению на этом из вики всё. Вопросы: 1) Можно ли со спокойной душой (!!!) использовать для конвертации в base64 функцию предназначенную для не для юникода, то есть тупо передавать ей мой юникод в виде последовательности байтов и быть уверенным, что потом без всякой потери я смогу это распаковать? 2) Если ответ НЕТ на первый вопрос, то как правильно надо обрабатывать данные переводя их в base64, если у нас они находятся в юникоде (в любом представлении)? Заранее благодарен за помощь ЗЫ: прогнал русские буквы через base64 (linux) и через php функции на локали utf-8 количество символов увеличилось, как и полагается, в 4/3 раза, при использовании моей аски функции с приведением типа размер был куда больше. Хотя значения я вбивал в коде студии, всё равно размер был намного больше, что логично, это непонимание и вызвало потребность создать эту тему |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |