Помощник
|
проблема с кодировкой Unicode utf-7 |
eiskalt
|
Сообщение
#1
|
||
|
|
||
|
|||
danilhtml |
29.5.2013, 22:11;
Ответить: danilhtml
Сообщение
#2
|
|
-------------------- |
|
|
Arks |
29.5.2013, 23:53;
Ответить: Arks
Сообщение
#3
|
|
Скорее всего notepad++ тут не поможет.
Кодировка - это способ представления бинарной информации. Стандарт UTF-7 был придуман специально для замены UTF-8 в email, чтобы вместо использования quoted-printable использовать ASCII-символы. Таким образом на выходе файла сохраненного в UTF-7 набор ASCII-символов, которой любой программой декодирования будет распознаваться как... набор ASCII символов! Если попытаться перекодировать ASCII символы в многобайтную кодировку - то они так и останутся однобайтными. Таким образом обратное кодирование из UTF-7 в UTF-8 невозможно, т.к. декодер не может знать какие из однобайтных символов входят в многобайтный кортеж. Если же теоретически предположить что стандарт полностью обратно совместим с BASE64 то декодирование становится возможным, т.к. все кортежи имеют длину ровно 2 байта. Но мне это кажется несколько бредом, ибо тогда получается что ряд языков становится недоступен(физически 7 бит меньше 8) или имеет место быть очень большой оверхед(14 vs 8). Собственно обратное декодирование возможно только в одном случае - когда количество байт/символ в новой кодировке увеличивается. Здесь же мы видим что используется 7 бит-единица и символ состояит из 2 байт - т.е. двух таких единиц + пары битов на хз-что. Надеюсь что я не прав. |
|
|
Vapaamies |
1.6.2013, 11:06;
Ответить: Vapaamies
Сообщение
#4
|
|
|
Скорее всего notepad++ тут не поможет. Скорее всего, Notepad++ тут не поможет, но лишь потому, что все уже необратимо испорчено, а совершенно не по той причине, которую описал уважаемый Arks. Про необратимость -- мое предположение, учитывающее уровень подготовки автора темы, видимый по его сообщению. Таким образом обратное кодирование из UTF-7 в UTF-8 невозможно Совершеннейшая неправда. Все транспортные форматы Unicode (UTF) взаимно обратимы между собой, поскольку Unicode кодирует абстрактные символы, называемые "кодовыми точками". Семибитный транспортный формат (UTF-7) действительно был придуман для использования в e-mail в тех случаях, когда разрешены только 7-битные символы. Технически он реализован как своего рода inline base64 -- расширенные символы кодируются в одну из разновидностей base64 и записываются в виде многобайтовых (многосимвольных) последовательностей, начинающихся символом "+", если мне не изменяет память, и заканчивающихся еще чем-то. Символы с большими кодами в таком представлении могут растягиваться в 9-байтовые последовательности -- опять же, если мне не изменяет память. Понятное дело, что такая избыточность -- не просто так, а допускает обратное декодирование при условии, что сами последовательности не повреждены. Если у автора темы действительно UTF-7, а не UTF-8, то угораздило же его так вляпаться, с чем его и поздравляю. Сейчас даже самим концерном Unicode кодировка UTF-7 признается устаревшей в связи с отмиранием серверов, поддерживающих только 7-битные кодировки.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Проблема с админкой | 5 | Prok | 2337 | 29.7.2019, 20:04 автор: dvakarandasha |
|
Проблема с таблицей, которая выводится через скрипт | 7 | vanchester | 1339 | 15.2.2019, 19:06 автор: Artos_mw |
|
Проблема в тегах при сохранении контента | 1 | Kord18 | 1429 | 13.3.2018, 18:19 автор: Evgeniy3200 |
|
Проблема вёрстки адаптивной страницы на divах | 28 | master-vek | 4718 | 8.2.2018, 19:29 автор: master-vek |
|
Проблема с All in one SEO? | 17 | okseo | 2686 | 30.11.2017, 14:06 автор: okseo |
Текстовая версия | Сейчас: 24.4.2024, 15:43 |