AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.11.2009, 16:05   #1  
Ivan Beshkurov is offline
Ivan Beshkurov
Участник
 
11 / 10 (1) +
Регистрация: 18.07.2009
OutLook UTF-8 body (кодировка KOI8-U)
Доброго времени суток.

Попытался сегодня настроить рассылку почты в аксапте.(стандарт)(sysemailbroadcast)
И столкнулся с проблемой. Сабж пишется нормально - на русском, а тело письма в кодировке KOI8-U.(нечитабельно)
Поиск по теме результатов не дал.

Может быть кто-то сталкивался с подобной проблемой ?
Старый 06.11.2009, 10:42   #2  
AxaptaUser is offline
AxaptaUser
Участник
 
56 / 17 (1) ++
Регистрация: 09.03.2007
У вас DAX 2009?
Если да, то посмотрите класс формирования писем, при генерации тела письма не передается код кодировки - это надо подправить.
Старый 06.11.2009, 12:20   #3  
Ivan Beshkurov is offline
Ivan Beshkurov
Участник
 
11 / 10 (1) +
Регистрация: 18.07.2009
Цитата:
Сообщение от AxaptaUser Посмотреть сообщение
У вас DAX 2009?
Если да, то посмотрите класс формирования писем, при генерации тела письма не передается код кодировки - это надо подправить.
Нет, у меня 4-ка.
К тому же перепробывал все ваоианты. и SYSMailer и т.д.
Нигде не нашел нормального решения для рассылки писем.
Старый 06.11.2009, 14:33   #4  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
когдато давно взято с этого форума, возможно поможет
X++:
#define.CP_ACP(0)
#define.CP_UTF8(65001)
static str Utf2Ansi(str Utf8)
{
    DLL             _kernelDLL        = new DLL("KERNEL32");
    DLLFunction     MultiByteToWideChar  = new DLLFunction(_kernelDLL, "MultiByteToWideChar");
    DLLFunction     WideCharToMultiByte  = new DLLFunction(_kernelDLL, "WideCharToMultiByte");
    Binary          buf, buf1;
    int             len;
    str             res;
    res = "";
    if (Utf8)
    {
        buf = new Binary(strlen(Utf8));
        buf.string(0, Utf8);
        buf1 = new Binary((strlen(Utf8) + 1) * 2);
        MultiByteToWideChar.returns(ExtTypes::DWord);
        MultiByteToWideChar.arg(ExtTypes::DWord, ExtTypes::DWord, ExtTypes::Pointer, ExtTypes::DWord,
                                    ExtTypes::Pointer, ExtTypes::DWord);
        if (MultiByteToWideChar.call(#CP_UTF8, 0, buf, strlen(Utf8) + 1, buf1, strlen(Utf8) + 1))
        {
            WideCharToMultiByte.returns(ExtTypes::DWord);
            WideCharToMultiByte.arg(ExtTypes::DWord, ExtTypes::DWord, ExtTypes::Pointer, ExtTypes::DWord,
                                        ExtTypes::Pointer, ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord);
            len = WideCharToMultiByte.call(#CP_ACP, 0, buf1, strlen(Utf8) + 1, buf, 0, 0, 0);
            if (len)
            {
                buf = new Binary(len);
                if (WideCharToMultiByte.call(#CP_ACP, 0, buf1, strlen(Utf8) + 1, buf, len, 0, 0))
                {
                    res = buf.string(0);
                }
            }
        }
    }
    return res;
}
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
За это сообщение автора поблагодарили: Ivan Beshkurov (1).
Старый 06.11.2009, 15:26   #5  
Ivan Beshkurov is offline
Ivan Beshkurov
Участник
 
11 / 10 (1) +
Регистрация: 18.07.2009
Цитата:
Сообщение от ivas Посмотреть сообщение
когдато давно взято с этого форума, возможно поможет
X++:
#define.CP_ACP(0)
#define.CP_UTF8(65001)
static str Utf2Ansi(str Utf8)
{
    DLL             _kernelDLL        = new DLL("KERNEL32");
    DLLFunction     MultiByteToWideChar  = new DLLFunction(_kernelDLL, "MultiByteToWideChar");
    DLLFunction     WideCharToMultiByte  = new DLLFunction(_kernelDLL, "WideCharToMultiByte");
    Binary          buf, buf1;
    int             len;
    str             res;
    res = "";
    if (Utf8)
    {
        buf = new Binary(strlen(Utf8));
        buf.string(0, Utf8);
        buf1 = new Binary((strlen(Utf8) + 1) * 2);
        MultiByteToWideChar.returns(ExtTypes::DWord);
        MultiByteToWideChar.arg(ExtTypes::DWord, ExtTypes::DWord, ExtTypes::Pointer, ExtTypes::DWord,
                                    ExtTypes::Pointer, ExtTypes::DWord);
        if (MultiByteToWideChar.call(#CP_UTF8, 0, buf, strlen(Utf8) + 1, buf1, strlen(Utf8) + 1))
        {
            WideCharToMultiByte.returns(ExtTypes::DWord);
            WideCharToMultiByte.arg(ExtTypes::DWord, ExtTypes::DWord, ExtTypes::Pointer, ExtTypes::DWord,
                                        ExtTypes::Pointer, ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord);
            len = WideCharToMultiByte.call(#CP_ACP, 0, buf1, strlen(Utf8) + 1, buf, 0, 0, 0);
            if (len)
            {
                buf = new Binary(len);
                if (WideCharToMultiByte.call(#CP_ACP, 0, buf1, strlen(Utf8) + 1, buf, len, 0, 0))
                {
                    res = buf.string(0);
                }
            }
        }
    }
    return res;
}
buf.string(0, Utf8);

На этом моменте падает в дебаггер Пока понять не могу в чем дело.

На самом деле пытаюсь сделать наоборот из "что-то" в UTF8 , т.к. АутЛук по умолчанию его использует
Старый 06.11.2009, 15:33   #6  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
может строка пустая?
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
Старый 06.11.2009, 15:48   #7  
Ivan Beshkurov is offline
Ivan Beshkurov
Участник
 
11 / 10 (1) +
Регистрация: 18.07.2009
Цитата:
Сообщение от ivas Посмотреть сообщение
может строка пустая?
Нет. В дебаггере utf8 = 'ПроверочкаProverka'.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: You get the following warning message in BizTalk Server 2006 R2/2009 - The message does not contain a body part Blog bot DAX Blogs 0 18.09.2009 03:13
dynamic-ax.co.uk: Import Emails from Outlook 2007 into Dynamics AX 2009 Blog bot DAX Blogs 1 03.07.2009 07:17
dax-lessons: Create Outlook Appointment or Meeting Request using X++ Blog bot DAX Blogs 2 04.05.2009 16:28
dax-lessons: Create Outlook Appointment or Meeting Request using X++ Blog bot DAX Blogs 0 30.04.2008 23:07
jinx: Microsoft Dynamics AX und .NET - Erstellen eines Termins in Outlook Blog bot DAX auf Deutsch 0 03.11.2007 00:33

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:17.