14. Januar 2009 

So sehr ich den Komfort von OSX Mail oder anderen Mail-Clients schätze, wichtige eMails gehören in die Datenbank. Um die eMails in der eigenen Datenbank zu empfangen, muß ich mich vielerlei rumschlagen, das schon längst erfunden ist. Lästig ist die Vielfalt an Zeichencodierungen.

charset

Lange Header in OSX Mail (Menü Darstellung/Email) zeigt mir z.B. den nebenstehenden Charset iso-8859-1.

Dazu die Wikipedia:

ISO(-)8859-1 versucht möglichst viele Sonderzeichen westeuropäischer Sprachen abzudecken. Da zur Vollständigkeit neben dem Eurosymbol vor allem für Französisch einige Zeichen fehlen, wurde ISO/IEC 8859-15 geschaffen.

  • iso-8859-1 bekomme ich häufig.
  • die iNug verschickt Content-Type: text/plain; charset="us-ascii"
  • die deutsche 4D Support-Liste verschickt Content-Type: text/plain; charset=windows-1252*
  • ab und an kommt Content-Type: text/plain; charset="utf-8"
  • und viel dieses Content-Type: multipart/related; boundary="----=_NextPart_000_000E_01C9723E.F0CD8770"

Mit ISO to Mac/Mac to ISO ist es nicht getan. Selber eine Konvertierung schreiben ist mühsam. Auch dieses Rad ist sicherlich längst erfunden. Stimmt auf OSX bzw. Unix/Linux in Form von inconv. Mein Dank an Bernd für den Hinweis. Auf Windows habe ich noch nicht gesucht.

Grundsätzlich scheint es zu klappen. Der Aufruf meiner Service-Funktion sieht so aus:
$error:=osx_Service ("iconv";->$msg_Body;->$converted_Msg_Body;->$charSet;->$sollCharSet)

und der relevante Teil in osx_Service sind diese Zeilen:

$error:=0
$in_T:=$P_para1->
$istCodierung:=$P_para3->
$sollCodierung:=$P_para4->
$command_T:="iconv -f "+$istCodierung+" -t "+$sollCodierung
LAUNCH EXTERNAL PROCESS($command_T;$in_T;$out_T;$err_T)
If ($err_T#"")
  $P_para2->:=$err_T
  $error:=54 `Die Argumente sind nicht kompatibel.
Else
  $P_para2->:=$out_T
End if
$0:=$error

Wenn jemand noch was Besseres findet oder eine Lösung für Windows, bedanke ich mich schon jetzt für den Hinweis.

Weitere Terminal-Tips

* 4D Write exportiert HTML im Charset Windows-1252

4D Themen: Berichte in Arbeit