Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2011, 00:49   #1
Fastex
Пользователь
 
Регистрация: 02.12.2010
Сообщений: 29
Радость Неверная кодировка текста в компонентах формы при получении почты через IdPOP3

Задача состоит в том, что бы написать некое подобие почтового клиента, который только загружает письма через через POP3 - протокол и выводит ихв StringGrid.
Проблема заключается в том, что письма в основном приходят в UTF-8 и Koi8-r. В большенстве своем в Koi8-r. Так вот темы тех, что приходят в КОИ8 в ячейках StringGrid'а отображаются в виде кракозябры, сам текст может отображаться нормально, а может тоже в кракозябре.
Те, что приходят в UTF-8 отображаются полностью нормально.

Выглядит это все примерно так:


Код писема:

в Koi8-r:
1
Код:
Return-Path: <reciprocatedl4@ya.ru>
Received: from ras.beamtele.net (ras.beamtele.net [183.83.7.34] (may be forged))
	by relay1.relcom.ru (8.14.4/8.14.4) with ESMTP id pBQCv4Ro016779
	for <iamjustsendingthisleter@flysafety.msk.ru>; Mon, 26 Dec 2011 15:57:05 +0300 (MSK)
	(envelope-from reciprocatedl4@ya.ru)
To: "iamjustsendingthisleter" <iamjustsendingthisleter@flysafety.msk.ru>
Date: Mon, 26 Dec 2011 15:56:03 +0400
From: "reciprocatedl4@ya.ru" <reciprocatedl4@ya.ru>
Subject: =?KOI8-R?B?8+/65OHk6e0g8+Hq9CDw7+Qg6+zg/iD38+Xn7w==?= 4500,
 =?KOI8-R?B?4evj6fE=?=
Reply-To: reciprocatedl4@ya.ru
Message-Id: <C3MO13COEC3LC4ZKZ@localhost.localdomain>
X-Mailer: 
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=koi8-r
X-Greylist: Recipient e-mail whitelisted, not delayed by milter-greylist-4.2.6 (relay1.relcom.ru [194.58.66.62]); Mon, 26 Dec 2011 15:57:05 +0300 (MSK)
In-Reply-To: <C3MO13COEC3LC4ZKZ@localhost.localdomain>

уПЪДБОЙЕ УБКФПЧ РПД ЛМАЮ ПФ 4500 ТХВ. - ФБЛПЕ ЧПЪНПЦОП ФПМШЛП РПД оПЧЩК ЗПД!
 
рТБКУ-МЙУФ:
 
    чЙЪЙФЛБ нЙОЙ – 4500 ТХВ.
    чЙЪЙФЛБ нБЛУЙ – 9500 ТХВ.
    йОФЕТОЕФ ЛБФБМПЗ – 15000 ТХВ.
    йОФЕТОЕФ НБЗБЪЙО – 20000 ТХВ.
 
чУЕ УБКФЩ ХУФБОБЧМЙЧБАФУС ОБ CMS (УЙУФЕНХ ХРТБЧМЕОЙС УБКФПН), ЮЕТЕЪ ЛПФПТХА чЩ УНПЦЕФЕ ДПВБЧМСФШ / НЕОСФШ ЧУА ЙОЖПТНБГЙА
 
чбцопе пфмйюйе! убкф УПЪДБЕФУС РПМОПУФША рпд лмаю, чБН ОЙЮЕЗП ОЕ ОХЦОП ДЕМБФШ УБНПУФПСФЕМШОП.
 
ч УФПЙНПУФШ ХЦЕ члмаюео дпнео об зпд Ч ЪПОЕ ТХ. (ТЕЗЙУФТЙТХЕФУС УТБЪХ ОБ чБЫЙ ДБООЩЕ) Й ипуфйоз об рпм зпдб
 
Ф.П. чЩ РПМХЮБЕФЕ рпмопуфша зпфпчщк убкф ЛПФПТЩК УТБЪХ ВХДЕФ тбънеэео ч йофетоеф, ЧУЕ ТБВПФЩ ДЕМБАФУС ОБНЙ, чЩ ФПМШЛП РПМХЮБЕФЕ ХЦЕ РПДЗПФПЧМЕООЩК РПД чБУ УБКФ. чБН ЧЩДБАФУС ЧУЕ РБТПМЙ
 
юФП ЧЛМАЮБЕФ ВБЪПЧБС ЛПНРМЕЛФБГЙС Ч ФБТЙЖБИ:
 
    - хОЙЛБМШОЩК (ЧУЕ ФБТЙЖЩ ПФ ЧЙЪЙФЛБ НБЛУЙ) ЙМЙ ФЙРПЧПК ДЙЪБКО (ЧЙЪЙФЛБ - НЙОЙ)
    - оЕПЗТБОЙЮЕООПЕ ЛПМЙЮЕУФЧП УФТБОЙГ
    - жПТНБ ПВТБФОПК УЧСЪЙ
    - лПТРПТБФЙЧОБС РПЮФБ
    - дПНЕО Й ИПУФЙОЗ Ч РПДБТПЛ
    - уЙУФЕНБ ХРТБЧМЕОЙС УБКФПН
        дМС ЙОФЕТОЕФ-НБЗБЪЙОПЧ ДПРПМОЙФЕМШОП:
    - лБФБМПЗ ФПЧБТПЧ
    - лПТЪЙОБ ЪБЛБЪПЧ
   
дПРПМОЙФЕМШОЩК ПРГЙПОБМШОЩК ЖХОЛГЙПОБМ:
    - жПТНБ ПВТБФОПК УЧСЪЙ
    - мЕОФБ ОПЧПУФЕК
    - жПФПЗБМЕТЕС
    - жПФПУМБКДЕТ
    - уМПЦОБС ЖПТНБ ЪБЛБЪБ
    - зПУФЕЧБС ЛОЙЗБ
    - бХДЙП/ЧЙДЕП РМЕЕТ
    - нХМШФЙСЪЩЮОПУФШ
    - йОЖПТНЕТЩ
    + ЧПЪНПЦОЩ МАВЩЕ ДПРПМОЕОЙС ВЕЪ ПЗТБОЙЮЕОЙС ХТПЧОС УМПЦОПУФЙ
 
ретчще 20 рпъчпойчыйи РПМХЮБФ РПДБТЛЙ ОБ 1500 ТХВ!
 
ъчпойфе ртснп уекюбу (495) 638-54-70  (НОПЗПЛБОБМШОЩК), 8-800-555-77-05 (ЙЪ тПУУЙЙ - ВЕУРМБФОП)
Пробовал брать символы кракозябры и делать следующее: ShowMessage(int('символ кракозябры'));
Получал код 63. Любой из символов кракозябры выдает код 63, что соответствует коду знака '?', но символы кракозябры все выглядят по разному, а код один и тот же: 63
Не понимаю как так выходит, т.к. с кодировками плохо знаком, перерыл кучу форумов и других сайтов, но ничего путного не нашел.

Пишу на C++ Builder XE
ОС: Windows XP Professional SP3

Как сделать так, что бы кодировка отображалась нормально. Кто сталкивался, подскажите, пожалуйста конкретными примерами.

Заранее всем огромное спасибо!
Fastex вне форума Ответить с цитированием
Старый 27.12.2011, 13:15   #2
Fastex
Пользователь
 
Регистрация: 02.12.2010
Сообщений: 29
По умолчанию

Я не понимаю, как именно декодировать, потому что уже на выходе при обращении к IdMessage1->Subject получаю кракозябру, что эквивалентно знакам вопроса. То есть уже поздно декодировать, а раньше как, не понимаю
Fastex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодировка при получении данных из WEB Никки Общие вопросы по Java, Java SE, Kotlin 3 28.12.2013 19:17
MySQL phpMyAdmin неверная кодировка. kos1nus SQL, базы данных 2 23.10.2011 16:19
Кодировка текста при передаче из cmd в Memo Noor Общие вопросы Delphi 5 21.09.2011 16:15
прием почты(idpop3) connection closed grasefully betirsolt Работа с сетью в Delphi 13 06.05.2010 19:49
Проблема с загрузкой сайта (неверная кодировка) Abadd0N Работа с сетью в Delphi 4 04.06.2009 15:23