![]() | |
![]() |
| | Thread Tools | Display Modes |
#11
| |||
| |||
|
|
Thomas 'PointedEars' Lahn schrieb am 29.10.2009 16:36: Holger Jeromin wrote: Thomas 'PointedEars' Lahn schrieb am 29.10.2009 13:51: Holger Jeromin wrote: Also bleibt dem EcmaScript interpreter nichts anderes übrig, als sie anders zu speichern. Das ist ebenfalls fhcsal. Es gibt keinen "EcmaScript interpreter" (egal wie man das schreibt. Konkret werden wird syntaktisch korreter Quelltext von ECMAScript-Implementationen wie JavaScript und JScript zu Bytecode *compiliert* und *dieser Bytecode* dann von einer Virtuellen Maschine Ausser im IE oder anderen alten Browsern. Das ist schon deswegen Unfug, weil die von IE unterstützte ECMAScript- Implementation Microsoft JScript ist. *compiliert* denn Firefox 1.5 JavaScript zu Bytecode wie du behauptet hast? |
#12
| |||
| |||
|
|
Thomas 'PointedEars' Lahn schrieb am 29.10.2009 16:36: Holger Jeromin wrote: Thomas 'PointedEars' Lahn schrieb am 29.10.2009 13:51: Holger Jeromin wrote: Also bleibt dem EcmaScript interpreter nichts anderes übrig, als sie anders zu speichern. Das ist ebenfalls fhcsal. Es gibt keinen "EcmaScript interpreter" (egal wie man das schreibt. Konkret werden wird syntaktisch korreter Quelltext von ECMAScript-Implementationen wie JavaScript und JScript zu Bytecode *compiliert* und *dieser Bytecode* dann von einer Virtuellen Maschine Ausser im IE oder anderen alten Browsern. Das ist schon deswegen Unfug, weil die von IE unterstützte ECMAScript- Implementation Microsoft JScript ist. *compiliert* denn Firefox 1.5 JavaScript zu Bytecode wie du behauptet hast? |
|
Client JavaScript reads source from SCRIPT tag contents, but compiles it into an internal bytecode for faster interpretation. -- Brendan Eich (Erfinder und Maintainer von JavaScript), 1996 |
|
JScript [...] acts like a compiled language in the sense that before any JScript [...] program runs, we fully syntax check the code, generate a full parse tree, and generate a bytecode. We then run the bytecode through a bytecode interpreter. [d.h. eine Virtuelle Maschine; Anm. d. Red.] -- Eric Lippert (hauptverantwortlich für JScript bei Microsoft seit 1996), |
#13
| |||
| |||
|
|
Es funktioniert in allen (von mir benötigten) Sprachen (getestet ist für Deutsch, Englisch, Kroatisch, Tschechisch, Spanisch, Slowakisch) außer in Kyrillisch. |
#14
| |||||||||||
| |||||||||||
|
|
John schrieb: Es funktioniert in allen (von mir benötigten) Sprachen (getestet ist für Deutsch, Englisch, Kroatisch, Tschechisch, Spanisch, Slowakisch) außer in Kyrillisch. Nein tut es nicht! |
|
Die Parameterübergabe im mailto: Protokoll läuft Byteweise. Jetzt sendest du Wörter die nicht durchs Protokoll laufen. |
|
Außerdem ist die Kodierung der Einstellung des Clienten gleich, also undefiniert. |
|
Header sind nach den RFC immer ASCII, |
|
du möchtest http://www.faqs.org/rfcs/rfc2047.html lesen. |
|
Damit dein Vorhaben das funktioniert musst du: 1.) Webseite auf UTF8 umstellen |
|
2.) Den Header "Subject=" ASCII kodieren gemäss RFC 2047 |
|
3.) Den Header "Content-Type" auf "text/plain; charset=utf-8" setzen |
|
4.) den Body Parameter als Byteweises UTF-8 senden [...] |
|
5.) Alle drei Parameter mit encodeURIComponent() zusammenbauen. |
|
Also subject= '=?UTF-8?B?' + Base64.encode(subject) + '?=' |

#15
| ||||||
| ||||||
|
|
Header sind nach den RFC immer ASCII, Ja, spielt für `mailto:' aber keine Rolle. |
|
2.) Den Header "Subject=" ASCII kodieren gemäss RFC 2047 Nein, sondern gemäss RFC 2368 und damit RFC 3986. |
|
3.) Den Header "Content-Type" auf "text/plain; charset=utf-8" setzen Das fällt für mich unter "Website auf UTF-8 umstellen". Oder meinst Du etwas anderes? |
|
4.) den Body Parameter als Byteweises UTF-8 senden [...] Unfug. Entweder unterstützen sowohl der WUA als auch der MUA UTF-8 und damit die in RFC3986 definierte Prozent-Codierung, oder eben nicht. Wenn nicht, kann man allenfalls auf jegliche explizite Prozent-Codierung verzichten (also weder escape() noch encodeURIComponent()), und hoffen, dass das klappt (d.h. dass sich WUA und MUA schon richtig verständigen werden.) Saubere Programmierung ist natürlich etwas anderes, und besser sollte dann MUA ein Update erfahren statt dass man an den Symptomen herumdoktert. |
|
subject= '=?UTF-8?B?' + Base64.encode(subject) + '?=' Ein clientseitig eingebautes Objekt, welches mit `Base64' referenziert werden könnte, gibt es nicht. Hier den URI-Teil mit Base64 zu codieren hiesse zudem, dem MUA Base64 im Klartext vorzuwerfen (nebst Zeichendeklaration im Klartext, den dieser dann wieder Base64 codiert, wodurch beim Empfänger wieder Base64 im Klartext angekommt. Zwar lassen sich so auch "verschlüsselte" E-Mail-Nachrichten versenden, die Vorgehensweise erscheint mir aber für den Alltag wenig sinnvoll ![]() |
|
Im übrigen unterstützen einige WUAs/MUAs den subject-Parameter in `mailto:' URIs nicht. |
#16
| ||||||||||||
| ||||||||||||
|
|
Thomas 'PointedEars' Lahn schrieb: Header sind nach den RFC immer ASCII, Ja, spielt für `mailto:' aber keine Rolle. Nicht für mailto: Die MUAs übernehmen diese Parameter einfach in die Mail als Header. Die hvalue muss trotzdem ASCII sein. |
|
2.) Den Header "Subject=" ASCII kodieren gemäss RFC 2047 Nein, sondern gemäss RFC 2368 und damit RFC 3986. Ok ungenau, der hvalue (hier das Subjekt) ist nach RFC 2047 kodiert. |
|
3.) Den Header "Content-Type" auf "text/plain; charset=utf-8" setzen Das fällt für mich unter "Website auf UTF-8 umstellen". Oder meinst Du etwas anderes? "Content-Type" ist ein Header in der Mail der dem MUA sagt er soll UTF8 verwenden. |
|
4.) den Body Parameter als Byteweises UTF-8 senden [...] Unfug. Entweder unterstützen sowohl der WUA als auch der MUA UTF-8 und damit die in RFC3986 definierte Prozent-Codierung, oder eben nicht. Wenn nicht, kann man allenfalls auf jegliche explizite Prozent-Codierung verzichten (also weder escape() noch encodeURIComponent()), und hoffen, dass das klappt (d.h. dass sich WUA und MUA schon richtig verständigen werden.) Saubere Programmierung ist natürlich etwas anderes, und besser sollte dann MUA ein Update erfahren statt dass man an den Symptomen herumdoktert. Hat nichts miteinander zu tun. Das eine ist eine mailto: URL das andere eine Mail nach RFC2045. |
|
subject= '=?UTF-8?B?' + Base64.encode(subject) + '?=' Ein clientseitig eingebautes Objekt, welches mit `Base64' referenziert werden könnte, gibt es nicht. Hier den URI-Teil mit Base64 zu codieren hiesse zudem, dem MUA Base64 im Klartext vorzuwerfen (nebst Zeichendeklaration im Klartext, den dieser dann wieder Base64 codiert, wodurch beim Empfänger wieder Base64 im Klartext angekommt. Zwar lassen sich so auch "verschlüsselte" E-Mail-Nachrichten versenden, die Vorgehensweise erscheint mir aber für den Alltag wenig sinnvoll ![]() Quatsch, das ist ein Parameter Namens Subject der an die mailto URL angefügt wird. Die Interpretation des Subjektes in Base64 ist Sache des MUAs. |
|
subject= '=?UTF-8?B?' + Base64.encode(subject) + '?='; '&Subject=' + encodeURIComponent(subject); ist ein Parameter nach RFC2368 der RFC2047 mässig kodiert ist. |
|
Im übrigen unterstützen einige WUAs/MUAs den subject-Parameter in `mailto:' URIs nicht. Das ist so nicht richtig. |
|
Die MUAs brauchen das auch nicht. |
|
Alle Parameter bis auf den Body werden als "Parameter: Wert(\r)\n" in den Mailtext geschrieben. |
|
Aus &Subject=blabulber wird dann "Subject: blabulber\n" im Mailtest. |
|
Wenn ich also das Subjekt nach RFC 2047 'B' kodiere wird es auch als solches eingebaut. Wenn nicht sind es Schrottteile die die RFC2368 nicht kennen oder ignorieren. |
|
Selbst Microsoft kriegt das hin. |
#17
| |||
| |||
|
|
Werde ich morgen auch nochmal mit Outlook 2003 testen. Iceweasel (Firefox) 3.5.3 in Kombination mit Icedove (Thunderbird) 2.0.22 unterstützt es jedenfalls für das Subject mit Quoted-Printable-Codierung; er unterstützt es aber auch ohne, d.h. window.location = "mailto:foo@example?subject=" + encodeURIComponent("\u0431"); |
![]() |
| Thread Tools | |
| Display Modes | |
| |