The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"iconv: Что это за кодировка и как перекодировать?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"iconv: Что это за кодировка и как перекодировать?"  +/
Сообщение от TiFFolk email(ok) on 14-Фев-10, 15:53 
Exim шлет в логи такие сообщения:
"\321\203 \320\222\320\260\321\201 \320\275\320\276\320\262\320\276\320\265 \321\201\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265"

Это заголовок письма, видимо кириллица упакованная в не понятно что. Вот кто подскажет как с помощью iconv ее перекодировать в utf8. Ну или какой другой способ.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "iconv: Что это за кодировка и как перекодировать?"  +/
Сообщение от Andrey Mitrofanov on 14-Фев-10, 17:31 
>Это заголовок письма, видимо кириллица упакованная в не понятно что. Вот кто

В восьмеричные "экранированные" значения~~~
Примерно так же _коверкает_ русские имена, например, tar. Типа, стесняется 8-битности терминала~~~

Посмотри, кто пишет в лог: сам exim или syslog какой -- кто из них "эскейпит".

>подскажет как с помощью iconv ее перекодировать в utf8. Ну или
>какой другой способ.

$ echo "\321\203 \320\222\320\260\321\201 \320\27501\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265"|sed 's/ /\\040/g;s/\\/, 0/g;s/^, //'|recode koi8-r/o..koi8-r
у Вас новое сообщение$ set|grep LANG
LANG=ru_RU.UTF-8
$ _

Не особо оразбирался, почему кои->кои, что-то где-то "криво", вот такой l1->l1 -
|recode l1/o..l1
- тоже "работает".

...
А не, exim-exim.......................... Fine manual = spec.txt
---
${escape:<string>}

    If the string contains any non-printing characters, they are converted to
    escape sequences starting with a backslash. Whether characters with the
    most significant bit set (so-called "8-bit characters") count as printing
    or not is controlled by the print_topbitchars option.
+++
----------------------------------------------------------
-print_topbitchars-Use: main-Type: boolean-Default: false-
----------------------------------------------------------

By default, Exim considers only those characters whose codes lie in the range
32-126 to be printing characters. In a number of circumstances (for example,
when writing log entries) non-printing characters are converted into escape
sequences, primarily to avoid messing up the layout. If print_topbitchars is
set,----

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "iconv: Что это за кодировка и как перекодировать?"  +/
Сообщение от jd (??) on 14-Фев-10, 18:40 
Не знаю, при чём тут koi8-r... У меня локаль UTF-8 и
printf "\321\203 \320\222\320\260\321\201 \320\275\320\276\320\262\320\276\320\265 \321\201\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265"
выводит: у Вас новое сообщение
Да в общем-то и по кодам видно. То есть, это просто сообщение в UTF-8 заэскейпленное в восьмеричной системе.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "iconv: Что это за кодировка и как перекодировать?"  +/
Сообщение от Andrey Mitrofanov on 14-Фев-10, 18:46 
>Не знаю, при чём тут koi8-r... Да в общем-то и по кодам видно. То есть,
>это просто сообщение в UTF-8 заэскейпленное в восьмеричной системе.

А-га, я не привыкщи ещё к UTF-8 -- не узнал в дампе. Ж) Виноват.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "iconv: Что это за кодировка и как перекодировать?"  +/
Сообщение от TiFFolk email(ok) on 14-Фев-10, 19:15 
>Не знаю, при чём тут koi8-r... У меня локаль UTF-8 и
>printf "\321\203 \320\222\320\260\321\201 \320\275\320\276\320\262\320\276\320\265 \321\201\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265"
>выводит: у Вас новое сообщение
>Да в общем-то и по кодам видно. То есть, это просто сообщение
>в UTF-8 заэскейпленное в восьмеричной системе.

Спасибо, теперь стало удобочитаемое =)
cat /var/log/exim/main.log | grep 'T=".*"' | sed 's/.*T="\(.*\)".*/\1/' | xargs -0 printf

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2020 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру