Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> base64 unicode == UTF-7? как граммотно реализовать 
:(
    Опции темы
null56
Дата 2.3.2010, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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 раза, при использовании моей аски функции с приведением типа размер был куда больше. Хотя значения я вбивал в коде студии, всё равно размер был намного больше, что логично, это непонимание и вызвало потребность создать эту тему
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0838 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.