[BCB6] Problem z kodowaniem znaków w mailu

dział ogólny

[BCB6] Problem z kodowaniem znaków w mailu

Nowy postprzez areq47 » środa, 3 sierpnia 2011, 15:01

Witam,
korzystam z BCB6 i piszę program odbierający maile za pomocą komponentów TIDMessage, TIDPop3, TIDSmtp. Tekst maila zapisuję w Memo i wyświetlam zawartość Memo w CppWebBrowser.

Problem jest jednak w tym że różne konta pocztowe odbierają maile zapisane w różnych kodowaniach. Niektóre maile czyta dobrze (są polskie znaki), a niektóre czyta z różnymi krzaczkami. Mam funkcję zmieniającą niektóre te krzaki na polskie znaki:

Kod: Zaznacz cały
String __fastcall OdkodujDoUtf8(String webText)
{
String tabLitery = L"ĄąĆćĘꣳŃńŚśŻżŹźś";

String tabSymbole[] = {L"Ä„", L"±", L"Ć", L"ć", L"Ä?", L"Ä™", L"Ĺ?",
L"Ĺ‚", L"Ĺ?", L"Ĺ„", L"Ĺš", L"¶", L"Ĺ»", L"ĹĽ", L"Ĺą", L"Ĺş", L"Ĺ›"};


for(unsigned int i = 0; i < ARRAYSIZE(tabSymbole); i++)
{
  webText = StringReplace(webText, tabSymbole[i], tabLitery[i + 1],
                                            TReplaceFlags() << rfReplaceAll);
}


return webText;
}


Kiedy myślałem że już wszystko jest OK, zauważyłem że w niektórych mailach są jeszcze inne krzaki niż w poprzednich (pewnie znowu jeszcze inne kodowanie). Czy istnieje jakiś sposób żeby ten problem obejść? Np. zapisywać treść Memo do pliku tekstowego i w trakcie zapisywania ustalić że plik ma być w kodowaniu UTF8. Później wystarczyło by tylko wczytać ten plik z powrotem do Memo i wyświetlić już z polskimi znakami?
Avatar użytkownika
areq47
Bladawiec
Bladawiec
 
Posty: 8
Dołączył(a): czwartek, 7 kwietnia 2011, 15:59
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7 64bit
Kompilator: Builder 6
Gadu Gadu: 668046
    Windows 7Firefox

Re: [BCB6] Problem z kodowaniem znaków w mailu

Nowy postprzez Cyfrowy Baron » środa, 3 sierpnia 2011, 17:34

Tekst może zawierać różne kodowanie, więc przed zdekodowaniem tekstu musisz sprawdzić w nagłówku wiadomości jakiego używa kodowania i zastosować odpowiednią konwersję. Problem dotyczy tylko wiadomości w html. Kodowanie jest przechowywane w tej sekcji nagłówka: Content-Type: text/html; charset="utf-8";
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 20 gości

cron