Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Аноним, Вы писали:
К>* UTF-7: строка кодируется 7-битными элементами, причем даже для ASCII приходится потратить до 2 элементов. Весь UCS-4 кодируется то ли 7, то ли 9 элементами (не помню).
Это не так. UTF-7 — очень сцепифическая кодировка.
В отличие от UTF-8 и UTF-16, символам не сопоставлены однозначные последовательности байтов (слов).
Используется только некоторое подмножество кодов ASCII (не используются "~", "\", что-то еще — не помню). Исходное состояние потока таково: символы этого подмножества, кроме "+" представляют сами себя. Символ "+" переводит поток в состояние кодирования: последовательность символов из набора UCS-2 или UCS-4 представляется сперва в кодировке UTF-16 (возможно, с применением суррогатов), затем полученная последовательность байтов кодируется алгоритмом BASE64. Признак конца такой последовательности и перехода в исходное состояние — символ "-". Сочетание "+-" обозначает сам символ "+".