Seite 1 von 1

SMS als Email weiterleiten - Zeichenkodierung ändern

Verfasst: Dienstag 7. August 2012, 18:43
von redfrog
Hallo,

ich hoffe ich bin in diesem Forum an der richtigen Adresse. Meine Suche war bisher Ergebnislos...

Ich leite von meinem Android Smartphone eingehende SMS auf eine Emailadresse weiter. Hierzu nutze ich die App "Tasker". Diese versendet eingehende SMS mit Hilfe dieses Python Skriptes:http://tasker.wdfiles.com/local--files/ ... ndemail.py

Das funktioniert auch bestens. Das einzige Problem ist, dass die Umlaute in der Email nicht korrekt dargestellt werden. Wenn ich Thunderbird für eingehende Emails auf ISO-8859-15 einstelle, werden die Umlaute mit falschen Sonderzeichen angezeigt. Wenn ich Thunderbrid auf UTF-8 einstelle, passt alles. Ich gehe also davon aus, dass für die ausgehenden Emails mit dem Python Skript UTF-8 genutzt wird.

Ich benötige aber zwingend die ISO Kodierung, da ich die Email in einem anderen Programm weiterverwenden möchte und dieses mit UTF-8 leider nicht umgehen kann.

Sowie ich bisher herausgefunden habe, kann man die Zeichenkodierung in Python durchaus umwandeln. Leider habe ich noch nicht kapiert, wie das in meinem speziellen Fall umzusetzen ist.

Vielleicht kann mir hier ja jemand helfen...

Re: SMS als Email weiterleiten - Zeichenkodierung ändern

Verfasst: Dienstag 7. August 2012, 22:12
von anogayales
Sowas?

Code: Alles auswählen

 "Ich habe Umlaute in mir. Ä".encode("ISO-8859-15")
Das ganze kannst du auch über http://docs.python.org/library/codecs.h ... ec-objects lösen.

Grüße,
anogayales

Re: SMS als Email weiterleiten - Zeichenkodierung ändern

Verfasst: Mittwoch 8. August 2012, 06:36
von Hyperion
@anogayales: Dein Beispiel soll Python3 sein?

@redfrog: Um welches Python handelt es sich? 2.x oder 3.x? Arbeitest Du intern mit Unicode oder mit Bytestrings?¹

Grundsätzlich kannst Du bequem einen Unicodestring mittels `encode` in das passende Zielformat wandeln. Arbeitest Du intern mit Bytestrings, solltest Du das auf jeden Fall erst einmal überarbeiten und alles intern auf Unicode umstellen. Also zu früh wie möglich die eingehenden Daten in Unicode wandeln (`decode`) und dann so spät wie möglich wieder in Bytestrings codieren (`encode`).

¹ Bevor Du das beantwortest: Kannst Du die folgende Aussage als richtig oder falsch benennen: "UTF-8 == Unicode". Wenn Du das nicht kannst, dann lies Dir mal die Links in meiner Signatur durch :-)

Re: SMS als Email weiterleiten - Zeichenkodierung ändern

Verfasst: Donnerstag 9. August 2012, 11:51
von redfrog
Hallo,

puh, das habe ich mir etwas einfacher vorgestellt... :-)

Ich hatte mit Programmierung und Python bisher nie etwas zu tun und werde es in Zukunft wohl auch nicht. Mir ging es lediglich um die Weiterleitung der SMS. Eine Anleitung zur Einrichtung gab es in einem Forum zur App.

Das Python Skript habe ich mir so wie es da steht aufs smartphone geladen und darin dann lediglich die emaildaten geändert. Ob es sich hierbei um 2.x oder 3.x handelt kann ich nicht sagen. Das gleiche gilt für Bytestrings, etc.

Vielleicht hat jemand aus dem Stegreif eine Idee speziell für das oben genannte Skript. Oder ist der Beitrag von anogayales schon die Lösung?

Ansonsten werde ich es aber auch überleben wenn die Umlaute nicht korrekt dargestellt werden...

Re: SMS als Email weiterleiten - Zeichenkodierung ändern

Verfasst: Donnerstag 9. August 2012, 19:28
von Hyperion
Das Script ist Python2 - und hässlich oben drein :-D

So weit ich das beim Überfliegen gesehen habe, arbeitet es intern nur mit Bytestrings. Dass bedeutet, dass Du das Encoding, welches Du reinsteckst auch wieder herausbekommst (außer da drin ist irgend ein Aufruf zu einer Funktion, die da etwas ummodelt).

Wenn Du also ISO-8859 haben willst, dann füttere das Script damit.