imap_utf7_encode
(PHP 3>= 3.0.15, PHP 4)
imap_utf7_encode — конвертирует 8-битные данные в модифицированный UTF-7-текст.
Описание
string imap_utf7_encode (string data)
Конвертирует 8-битные data в модифицированный UTF-7-текст. Это необходимо для имён mailbox’ов, содержащих международные символы вне печатаемого диапазона ASCII. Модифицированная кодировка UTF-7 определена в RFC 2060, раздел 5.1.3 (оригинальная UTF-7 была определена в RFC1642).
Кодирование пути папки IMAP (IMAP UTF-7) для Python — python
Я хотел бы знать, существует ли какая-либо «официальная» функция/библиотека в Python для кодирования пути к папке IMAP4 UTF-7.
В imapInstance.list() я получаю следующий путь, кодируемый IMAP UTF-7:
Если я делаю следующую кодировку:
Что такое кодировка UTF-7, но не IMAP UTF-7. Test+AOk- вместо Test&AOk- Мне нужна официальная функция или библиотека, чтобы получить кодированную версию IMAP UTF-7.
-
3 3
- 22 окт 2020 2020-10-22 01:20:14
- Mibou
3 ответа
Я написал очень простую реализацию python 3 IMAP UTF7, которая следует за спецификацией, и, похоже, она работает. ( «foorbarnnnrr» и многие другие обратные вызовы, & BdAF6QXkBdQ-, Test & Co, «[Mails].Test & AOk-» and
peter/mail/& ZeVnLIqe -/& U, BTFw- ведут себя так, как ожидалось).
Учитывая простоту этого кода, я устанавливаю его в общедоступном домене, поэтому не стесняйтесь использовать его, как хотите.
imap_utf7_encode — Converts ISO-8859-1 string to modified UTF-7 text
(PHP 4, PHP 5, PHP 7)
imap_utf7_encode — Converts ISO-8859-1 string to modified UTF-7 text
Описание
Converts data to modified UTF-7 text.
This is needed to encode mailbox names that contain certain characters which are not in range of printable ASCII characters.
Список параметров
An ISO-8859-1 string.
Возвращаемые значения
Returns data encoded with the modified UTF-7 encoding as defined in » RFC 2060, section 5.1.3 (original UTF-7 was defined in » RFC1642).
imap_utf7_encode
(PHP 3>= 3.0.15, PHP 4)
imap_utf7_encode — конвертирует 8-битные данные в модифицированный UTF-7-текст.
Описание
string imap_utf7_encode (string data)
Конвертирует 8-битные data в модифицированный UTF-7-текст. Это необходимо для имён mailbox’ов, содержащих международные символы вне печатаемого диапазона ASCII. Модифицированная кодировка UTF-7 определена в RFC 2060, раздел 5.1.3 (оригинальная UTF-7 была определена в RFC1642).
imap_utf7_decode
imap_utf7_decode — Decodes a modified UTF-7 encoded string
Описание
Decodes modified UTF-7 text into ISO-8859-1 string.
This function is needed to decode mailbox names that contain certain characters which are not in range of printable ASCII characters.
Список параметров
A modified UTF-7 encoding string, as defined in » RFC 2060, section 5.1.3 (original UTF-7 was defined in » RFC1642).
Возвращаемые значения
Returns a string that is encoded in ISO-8859-1 and consists of the same sequence of characters in text, or FALSE if text contains inval >text contains a character that is not part of ISO-8859-1 character set.
Смотрите также
- imap_utf7_encode() — Converts ISO-8859-1 string to modified UTF-7 text
Кодирование пути папки IMAP (IMAP UTF-7) для Python
Я хотел бы знать, существует ли какая-либо «официальная» функция / библиотека в Python для кодирования пути к папке IMAP4 UTF-7.
В imapInstance.list() я получаю следующий путь: IMAP UTF-7 закодирован:
Если я сделаю следующую кодировку:
Это UTF-7, но не кодированный IMAP UTF-7. Test+AOk- вместо Test&AOk- мне нужна официальная функция или библиотека, чтобы получить кодированную версию IMAP UTF-7.
3 Solutions collect form web for “Кодирование пути папки IMAP (IMAP UTF-7) для Python”
Пакет IMAPClient имеет функциональность для кодирования и декодирования с использованием модифицированного UTP-7 IMAP. Посмотрите в модуле IMAPClient.imap_utf7. Этот модуль можно использовать автономно, или вы можете просто использовать IMAPClient, который будет прозрачно выполнять кодирование и декодирование имен папок.
Пример кода:
Внедрение imapclient довольно слабое:
После некоторого исследования я нашел реализацию в MailPile, которая не подведет при кодировании roundtrip в этом тесте. Я также портировал его на Python3, если вам интересно: https://github.com/MarechJ/py3_imap_utf7
Я написал очень простую версию python 3 IMAP UTF7, которая следует за спецификацией, и, похоже, она работает. («foo \ rbar \ n \ n \ n \ r \ r» и многие другие обратные вызовы: & BdAF6QXkBdQ-, Test & Co ‘, «[Mails] .Test & AOk-» и’
peter / mail / & ZeVnLIqe – / & U, BTFw- ‘ведут себя так, как ожидалось).
Учитывая простоту этого кода, я установил его в общественном достоянии, поэтому не стесняйтесь использовать его так, как вы хотите.
Кодировка пути к папке IMAP (IMAP UTF-7) для .NET?
Спецификация IMAP ( RFC 2060 , 5.1.3. Международное соглашение по присвоению имен почтовых ящиков) описывает, как обрабатывать символы не ASCII в именах папок. Он определяет модифицированную кодировку UTF-7:
По соглашению, имена международных почтовых ящиков указываются с использованием модифицированной версии кодировки UTF-7, описанной в [UTF-7]. Целью этих модификаций является исправление следующих проблем с UTF-7:
UTF-7 использует символ «+» для переключения; это противоречит общему использованию «+» в именах почтовых ящиков, в частности в именах групп новостей USENET.
Кодировка UTF-7 — BASE64, в которой используется символ «/»; это противоречит использованию «/» в качестве популярного разделителя иерархии.
UTF-7 запрещает незашифрованное использование «\»; это противоречит использованию «\» в качестве популярного разделителя иерархии.
UTF-7 запрещает незашифрованное использование «
«; это противоречит использованию «
» на некоторых серверах в качестве индикатора домашнего каталога.
UTF-7 позволяет нескольким альтернативным формам представлять одну и ту же строку; в частности, печатные символы US-ASCII могут быть представлены в закодированном виде.
В модифицированном UTF-7 печатаемые символы US-ASCII, за исключением символа «&», представляют себя; то есть символы со значениями октетов 0x20-0x25 и 0x27-0x7e. Символ «&» (0x26) представлен двухоктетной последовательностью «& -».
Все другие символы (значения октетов 0x00-0x1f, 0x7f-0xff и все 16-битные октеты Unicode) представлены в модифицированном BASE64 с дальнейшей модификацией из [UTF-7], в которой вместо символа «/» используется «,».
Модифицированный BASE64 НЕ ДОЛЖЕН использоваться для представления любого печатного символа US-ASCII, который может представлять себя.
«&» используется для перехода к модифицированному BASE64, а «-» для возврата к US-ASCII. Все имена начинаются с US-ASCII и ДОЛЖНЫ заканчиваться на US-ASCII (то есть имя, заканчивающееся 16-битным октетом Unicode, ДОЛЖНО заканчиваться на «-»).
Прежде чем я начну реализовывать это, мой вопрос: есть ли какой-нибудь код / библиотека .NET (или даже в рамках), который выполняет эту работу? Я не смог найти .NET ресурсы (только реализации для других языков / фреймворков ).
Кодирование пути папки IMAP (IMAP UTF-7) для Python
5 Mibou [2012-10-08 09:54:00]
Я хотел бы знать, существует ли какая-либо «официальная» функция/библиотека в Python для кодирования пути к папке IMAP4 UTF-7.
В imapInstance.list() я получаю следующий путь, кодируемый IMAP UTF-7:
Если я делаю следующую кодировку:
Что такое кодировка UTF-7, но не IMAP UTF-7. Test+AOk- вместо Test&AOk- Мне нужна официальная функция или библиотека, чтобы получить кодированную версию IMAP UTF-7.
python encoding imap utf-7
3 ответа
4 Решение Menno Smits [2012-10-09 19:01:00]
Пакет IMAPClient имеет функции для кодирования и декодирования с использованием модифицированного IMAP UTF-7. Посмотрите в модуле IMAPClient.imap_utf7. Этот модуль может использоваться автономно или вы можете просто использовать IMAPClient, который будет прозрачно выполнять кодирование и декодирование имен папок.
Пример кода:
2 Maresh [2015-08-17 17:37:00]
Внедрение imapclient выглядит некорректно:
После некоторого исследования я нашел реализацию в MailPile, которая не прерывается при кодировании в обоих концах этого теста. Я также портировал его на Python3, если вам интересно: https://github.com/MarechJ/py3_imap_utf7
Я написал очень простую реализацию python 3 IMAP UTF7, которая следует за спецификацией, и, похоже, она работает. ( «foo\rbar\n\n\n\r\r» и многие другие обратные вызовы, ‘& BdAF6QXkBdQ-‘, ‘Test & Co’, «[Mails].Test & AOk-» and ‘
peter/mail/& ZeVnLIqe -/& U, BTFw- ‘ведут себя так, как ожидалось).
Учитывая простоту этого кода, я устанавливаю его в общедоступном домене, поэтому не стесняйтесь использовать его, как хотите.
Кодирование путь к папке IMAP (IMAP UTF-7) для .NET?
Спецификация IMAP ( RFC 2 060 , 5.1.3 Mailbox Международной конвенции именования.) Описывает , как обращаться с не-ASCII символов в именах папок. Он определяет модифицированный кодировку UTF-7:
По соглашению, международные названия почтовых ящиков задаются с помощью модифицированного варианта кодировки UTF-7, описанной в [UTF-7]. Цель этих модификаций, чтобы исправить следующие проблемы с UTF-7:
UTF-7 использует знак «+» для смещения; это вступает в противоречие с обычным использованием «+» в именах почтовых ящиков, в частности, имена групп новостей USENET.
Кодировка UTF-7 является BASE64, который использует символ «/»; это конфликтует с использованием в качестве популярного разделителя «/» иерархии.
UTF-7 запрещает Unencoded использование \; это конфликтует с использованием «\» в качестве разделителя популярной иерархии.
UTF-7 запрещает незакодированное использование «
»; это конфликтует с использованием «
» в некоторых серверах в качестве индикатора домашнего каталога.
UTF-7 допускает множество альтернативных форм для представления той же строки; в частности, для печати US-ASCII chararacters может быть представлена в закодированной форме.
В модифицированной UTF-7, печатные символы US-ASCII за исключением & представляют из себя; то есть символы с октета значения 0x20-0x25 и 0x27-0x7e. Символ «&» (0x26) представлена последовательностью из двух октетов «& -».
Все остальные символы (октет значения 0x00-0x1f, 0x7F-0xff, и все Unicode 16-битных октетов) представлены в модифицированной BASE64, с дальнейшей модификации из [UTF-7] , что «» используется вместо „/“.
Модифицированная BASE64 недопустимо использовать для представления любой печати US-ASCII символов , которые могут представлять собой.
«&» Используется для перехода к модифицированному BASE64 и «-», чтобы перейти назад к US-ASCII. Все имена начинаются в US-ASCII и должны заканчиваться в US-ASCII (то есть имя, которое заканчивается с Unicode 16-битного октет должен заканчиваться «-»).
Прежде чем я начну ее реализацию, на мой вопрос: есть ли какая — нибудь .NET код / библиотека там (или даже в рамках) , что делает работу? Я не мог найти .NET ресурсов (только реализации для других языков / рамок ).
Что такое код imap_utf7_encode
(PHP 3 >= 3.0.15, PHP 4, PHP 5)
imap_utf7_encode — Converts ISO-8859-1 string to modified UTF-7 text
Description string imap_utf7_encode ( string data )
Converts data to modified UTF-7 text. Note that data is expected to be encoded in ISO-8859-1.
This is needed to encode mailbox names that contain certain characters which are not in range of printable ASCII characters.
Пред. | Начало | След. |
imap_utf7_decode | Уровень выше | imap_utf8 |
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту: