Domino 9 und frühere Versionen > ND8: Entwicklung

Email-Kodierung und Umlaute

<< < (2/3) > >>

koehlerbv:

--- Zitat von: pram am 13.03.12 - 19:25:22 ---Werbung  ;D
--- Ende Zitat ---

Keine Werbung, Roland - Pflichtlektüre  ;)

Bernhard

hampa:
Hallo zusammen

@Peter. Diesen Ansatz habe ich mir auch schon überlegt. Wie Roland sagt, würde ich das wirklich nur einsetzen wollen/müssen, wenn ich's wirklich nicht anders hinbekomme. Der Text der da stehen kann ist Freitext, den der User eingeben kann und da weiss man ja nie, auf was für Ideen die kommen.  ;D

@Roland. Danke für den Link. Diesen Artikel habe ich in meiner Verzweiflung schon x-mal gelesen. Aber ich werde ihn noch einmal lesen, da ich bestimmt etwas übersehen habe.  ;)

Das mit mimeentity.decodeContent/...encodeContent(ENC_NONE) werde ich gleich morgen ausprobieren. Im voraus schon mal besten Dank für den Hinweis.

Gruss
Hampa

Peter Klett:
@Roland: Danke auch von mir für den Tipp

Habe es jetzt so umgeschrieben:

If Not (mimeItem Is Nothing) Then
   If (mimeItem.Type = MIME_PART) Then
      Set mime = mimeItem.GetMimeEntity
      If Not (mime Is Nothing) Then
         Call mime.DecodeContent
         Call mime.EncodeContent (ENC_NONE)
...

Das Ergebnis ist grundsätzlich super, die anschließend erzeugte HTML-Datei (die bei mir am Ende herauskommen muss) sieht im Browser perfekt aus. Aber die Umlaute sind nicht übersetzt äöüæøå stehen im Klartext, also kein &auml; usw.. Ist das heute nicht mehr aktuell? Oder gibt es eine andere Encode-Variante?

Ich werde jetzt beide Verfahren kombinieren. Erst mit DecodeContent und EncodeContent grundsätzlich "schick" machen und dann die gebräuchlichsten Umlaute zu Fuß nachübersetzen. Und wenn da einer vergessen wird, und irgendein Browser das falsch darstellt, dann ist es halt so ...

Aber sicherlich hast Du da auch noch einen Tipp parat.

pram:
Umlaute sind m.E. erlaubt, und müssen nicht übersetzt werden, wenn die Encodierung passt.
entweder setzt du die Codierung in einem HTML-Header, das geht in einem Notes-Agenten z.B. mit

print "Content-Type: text/html; charset=utf-8"
print "" ' leerzeile zum signaisieren: Header ende
print "<doctype....."

Alternativ kann man den Contet-Type bzwl Charset *) auch in der Maske/Page/... angeben (option müsste ich jetzt nachsehen)
oder eben über einen speziellen "<meta...." Tag.
Bis jetzt hatte ich (nach dem ich das richtige Encoding rausgefunden hatte) keine Probleme mit Umlauten, auch ohne Ersetzung (bis auf die Steuerzeichen < > & " )
Die Ersetzungsliste ist ja inzwischen endlos: http://de.selfhtml.org/html/referenz/zeichen.htm
Wobei eine Ersetzung von ä=>&auml; etc. mit Sicherheit nicht falsch ist, allerdings wird man nie alle, wenn auch in unserer Region seltene, Sonderzeichen erfassen können, so dass man versuchen sollte, das Problem durch ein korrektes Encoding zu fixen.
(@Peter: Da deine Datei jetzt sauber aussieht, denke ich hast du das auch geschafft)

Wenn die Umlaute, Steuer und escapezeichen ( < > " ' & / \ ) dann sauber durchkommen, mach ich als Härtetest oft eine "UTF-8-Insel": *̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴*̡͌l̡*-


Wenn diese Sonderzeichen 1x den Roundtrip schaffen, gehe ich davon aus, dass ich nicht viel beim Encoding falsch gemacht habe. ;D
Gruß
Roland


*) Vielleicht nochmal zur Klarstellung, weil ich das selber oft ein wenig vermische

Content-Type:
Der "Doumenttyp", z.B. text/html, image/gif, application/octet-stream....

Content-Transefer-Encoding:
Die Art, wie der Content über den Kommunkikationskanal übertragen wird. Gängig ist: None bzw. Binary, Base64, quoted-printable, 7bit (falls keine Zeichen > 128), chunked
(letzteres ist bei Notes-Agenten nützlich, wenn man größere Attachments senden will: http://atnotes.de/index.php/topic,50597.msg324992.html#msg324992)

Charset:
Das Charset spielt eigentlich nur bei Texten eine Rolle. Nachdem der Content encodiert wurde, muss der Browser (oder auch Texteditor) wissen, wie er die einzelnen Bytes darstellen muss. Am Gängisten ist inzwischen wohl UTF-8, gefolgt von ISO-8859-15, CP1252, ASCII,....
das Charset wird i.d.R. hinter dem Content-Type angegeben: z.B. "text/html; charset=UTF-8" (das funktioniert auch, wenn man das so in einer Maske/Page eingibt)

Peter Klett:
Vielen Dank. Habe inzwischen auch die Umlaute-Übersetzung wieder rausgenommen, nachdem mir

ø in &ouml; übersetzt wurde (er sollte das überhaupt nicht übersetzen, hat es aber als ö erkannt)

Was immer der da gelesen hat. Ich lasse es jetzt so und fasse das erst wieder an, falls ein Problem auftritt.

Der Tipp mit dem Decode und Encode ist aber Gold wert, da schläft es sich gleich ruhiger ...

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln