| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Кодировка. |
| Автор: PsiMagistr 30.7.2010, 11:44 | ||
| Ребята, пытаюсь прикрутить почтовые функции. Все работает и письма отсылает. Но с кодировкою - жесть-беда: Инглиш - норма, русский - знаки вопроса и все тебе тут. Весь форум излазил. Все перепробовал. Дельфи 2009. Три сетевых обьекта на форме Msg (TIdMesage), Smtp(TIdSmtp), IdAntiFreeze1 (TIdAntiFreeze) (Кстати чем он занимается этот антифриз?) Код такой:
|
| Автор: Snowy 30.7.2010, 12:30 |
| Антифриз занимается тем, что не даёт приложению замирать во время работы Indy. А с кодировкой - всё нормально. Просто ты её не устанавливаешь, зато говоришь почтовой программе, что у тебя вин-1251, хотя это не так. |
| Автор: PsiMagistr 30.7.2010, 12:39 |
| А как ее установить то?. Я то думал: msg.CharSet := 'windows-1251'; //Увы. Оказалось не то. |
| Автор: Snowy 30.7.2010, 12:54 |
| Этой строкой ты только указываешь, какая у тебя Body.Text кодировка. А там у тебя UTF-16. пропиши у IdSMTP .IOHandler.DefStringEncoding := TEncoding.нужная_кодировка; |
| Автор: PsiMagistr 30.7.2010, 13:04 |
| УВы. Ошибка несовпадения типов. [DCC Error] Unit1.pas(38): E2010 Incompatible types: 'TIdEncoding' and 'TEncoding' |
| Автор: Snowy 30.7.2010, 13:25 |
| Ну и что из этого следует? Что я пропустил буковки Id в слове TIdEncoding |
| Автор: PsiMagistr 30.7.2010, 13:33 |
| Нет, уважаемый Snowy в данном случае из этого следует кое что другое. Поскольку о существовании TIdEncoding' мой Дельфи вообще не подозревает... При попытке записать: smtp.IOHandler.DefStringEncoding := TIdEncoding.та-та-та-та; Он реагирует на TIdEncoding как на нечто инопланетное. (подчеркивает красным) |
| Автор: PsiMagistr 30.7.2010, 14:41 |
| Никак не найду модуль, ребята. Пожалуйста, если не трудно, подскажите конкретно, что подключить надо? 3й день вожусь, а тут еще жара. Заранее благодарен. |
| Автор: CodeMonkey 30.7.2010, 14:46 |
| Не могу сказать за Delphi 2009, но в Delphi 2010 свойство DefStringEncoding имеет тип TIdTextEncoding, который объявлен в IdGlobal. |
| Автор: PsiMagistr 30.7.2010, 15:39 |
| Добавил модуль, записал, smtp.IOHandler.DefStringEncoding := TIdEncoding.enUTF8; TIdEncoding.enUTF8 был нормально обнаружен. Запустил проект. При отправке ошибка и все тут. |
| Автор: CodeMonkey 30.7.2010, 17:16 |
| Вроде Showy говорил, что надо UTF-16, а не UTF-8? Я не очень разбираюсь в Indy, но когда последний раз я туда нырял, оказалось, что там что-то сильно понаворотили в связи с переходом на Unicode. Возможно, нужно искать решение, а может это баг (и надо обновить Indy), а ещё можно использовать другую библиотеку - к примеру, Synapse. Добавлено через 1 минуту и 58 секунд Для Synapse ссылочки: http://www.webdelphi.ru/2010/02/synapse-otpravka-pisem-ispolzuya-smtp/ http://www.webdelphi.ru/2010/03/synapse-v-delphi-otpravka-pisem-s-vlozheniyami/ http://www.webdelphi.ru/2010/07/otpravka-pisem-s-gmail-s-ispolzovaniem-synapse/ http://www.webdelphi.ru/2010/07/gmail-synapse-i-ms-outlook-problema-s-kodirovkami-pisem-reshena/ |
| Автор: PsiMagistr 30.7.2010, 17:34 |
| Спасибо Вам большое CodeMonkey. Честно говоря, не знаю что и думать, хотя проблемы с Инди предвидел, там багов целый воз. |
| Автор: ZBugz 7.5.2015, 21:00 |
| Всем привет... А вот в delphi XE8 ну никак не могу прикрутить TIdEncoding.enUTF8 Не могу анйти где он обьявлен.. Помогите найти uses... |
| Автор: ZBugz 9.5.2015, 07:43 |
| Что ? Никто не знает ? |
| Автор: ZBugz 18.5.2015, 07:31 |
| Фигово, что никто не знает... |
| Автор: Illusion Dolphin 18.5.2015, 09:52 | ||||
Вы бы пример кода дали чтоли зачем он вам нужен.
Странно звучит - английский юникод. Я бы ещё понял? если бы вы искали TIdEncoding.UTF8 . В делфи XE7 используется IIdTextEncoding и для получению UTF8 я вызываю функцию IndyTextEncoding_UTF8 (idGlobal) - проверьте в XE8 - они навряд ли что-то поменяли. |
| Автор: Poseidon 18.5.2015, 13:12 | ||
ZBugz, почему бы просто самому не объевить?
http://www.indyproject.org/docsite/html/frames.html?frmname=topic&frmfile=TIdEncoding.html Добавлено через 1 минуту и 4 секунды Эта "en" не от English, а от Encoding |
| Автор: ZBugz 26.6.2015, 17:55 | ||||||||
Все времени небыло отписатся Нужно на ftp закачать файл, с русскими символами, вот и все Закачиваю обычно через idftp компонент
И вот это
тоже не пашет Есть какие мысли ? Добавлено через 1 минуту и 28 секунд С ICS все нормально работает С Clever IS тоже не пашет... |
| Автор: ZBugz 18.8.2015, 21:31 |
| Ну где все гуру ? |