Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

Charset в Idmessage   Найти похожие ветки 

 
Клон   (2006-02-22 14:25) [0]

Здравствуйте.
А не подскажите какое значение надо присвоить полю Charset в объекте Idmessage для корреткной отправки русского текста в письмах ?


 
umbra ©   (2006-02-22 14:50) [1]


> какое значение надо присвоить полю Charset

windows-1251, например


 
Клон   (2006-02-22 14:54) [2]

m.CharSet:="windows-1251";
результат : вместо русскиз букв приходят непереводимые символы... (


 
umbra ©   (2006-02-22 14:58) [3]

а какая у Вас версия Инди?


 
Клон   (2006-02-22 15:10) [4]

9.00.10


 
clickmaker ©   (2006-02-22 15:28) [5]

большинство почтовых клиентов нормально понимают koi8-r


 
Клон   (2006-02-22 15:40) [6]

m.CharSet:="koi8-r";

Ситуация та же.


 
umbra ©   (2006-02-22 16:01) [7]

попробуйте у IdSMTP установить свойство ASCIIFilter в False. У меня инди 10, а в нем этого свойства уже нет, поэтому я не знаю, чему оно равно по умолчанию. Если оно True, то все символы с кодами >127 (куда попадают русские буквы) будут заменены на символы с кодами х - 128 (х - код исходного символа)


 
Клон   (2006-02-22 16:06) [8]

idsmtp1.ASCIIFilter:=false;
idsmtp1.Connect();
idsmtp1.Send(m);
idsmtp1.Disconnect;

тело письма содержит слово "тест"
в приходящем письме "РЕЯР"


 
umbra ©   (2006-02-22 16:15) [9]

а если явно это свойство не устанавливать, то что придет в письме?


 
Клон   (2006-02-22 16:24) [10]

"РЕЯР"


 
umbra ©   (2006-02-22 16:39) [11]

как оказалось, "тест" в кодировке win1251 в кои8 выглядит именно как "РЕЯР". То-есть доходит все правильно. а какой CharSet у Вас стоит у мессаджа в smtp и рор3 клиентах?


 
clickmaker ©   (2006-02-22 16:42) [12]

а если
var
 wc: array[0..512] of widechar; // размер можно и динамически вычислить
 c: array[0..512] of char;
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, PChar(m), wc, sizeof(wc));
WideCharToMultiByte(20866 {koi80r}, 0, wc, -1, c, sizeof(c));
idsmtp1.charset := "koi8-r";
idsmtp1.Send(c);


 
Клон   (2006-02-22 17:23) [13]

Indicates the character set used for the message.
property CharSet: string;

Description

CharSet is a String property that indicates the character set used for the message. Some common CharSet values include:

US-ASCII
ISO-8859-1
ISO-8859-2
ISO-8859-3
ISO-8859-4
ISO-8859-5
ISO-8859-6
ISO-8859-7
ISO-8859-8
ISO-8859-9
ISO-8859-10

All of these character sets are used as pure 7bit or 8bit sets without any shift or escape functions. The meaning of shift and escape sequences in these character sets is not defined. The "charset" parameter has been defined primarily for the purpose of textual data, and is described in this section for that reason. However, it is possible that non-textual data might also specify a charset value for some purpose.


 
Клон   (2006-02-25 07:19) [14]

Неужели никто не сталкивался ? как-то же это решается.....


 
palva ©   (2006-02-25 13:11) [15]

А что решать-то? У вас все правильно отправляется. Просто почтовый клиент предполагает, что слово "тест", которое он получает в кодировке Windows приходит к нему в кодировке koi8-r и соответственно показывает это слово.

Для того чтобы увидеть слово "тест" можно попробовать:

1. Переключить кодировку показа письма, если почтовый клиент это позволяет.

2. Переключить кодировку по-умолчанию в почтовом клиенте.

3. Указать кодировку письма при его отправке. Почтовый клиент может понять и выполнить эти указания, а может и нет - зависит от клиента. Русский Outlook Express понимает любой способ

IdMessage1.ContentTransferEncoding := "Windows-1251";
другой способ
IdMessage1.ContentType := "text/plain; Windows-1251";
или, если письмо нужно показывать в браузере
IdMessage1.ContentType := "text/html; Windows-1251";
Можно посылать письмо в html без указания кодировки в заголовках, но указать кодировку в теле письма, примерно так:
<META  http-equiv=Content-Type content="text/html; charset=Windows-1251">

4. Можно перекодировать письмо и тему перед отправкой письма в ту кодировку, которую почтовый клиент показывает по умолчанию.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.013 c
15-1139811814
Shlomo
2006-02-13 09:23
2006.03.12
InstallShield и русский?


6-1133163165
SergP.
2005-11-28 10:32
2006.03.12
WinInet. Узнать размер контента, принимаемого по http/https


1-1139300240
rOOse
2006-02-07 11:17
2006.03.12
Обновление Реестра Windows


2-1140519256
BillyJeans
2006-02-21 13:54
2006.03.12
Вопрос по ADOQuery


11-1121599462
KVita
2005-07-17 15:24
2006.03.12
использование TObj





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский