Japanischer E-Mail-Betreff-Codierung
Sich, Codierung japanischen E-Mails ist etwas schwierig, ich bin langsam zu entdecken, ich selbst. In Fall gibt es keine Experten (auch diejenigen mit wenig Erfahrung tun), kann mir bitte noch einige Hinweise, wie es zu tun, wie es zu testen und wie um es zu überprüfen?
Bedenken, dass ich noch nie einen Fuß irgendwo in der Nähe von Japan, es ist einfach so, dass das Produkt, das ich entwickle es verwendet wird, unter anderen stellen.
Was (glaube ich) ich weiß, so weit ist die folgende:
- Japanische E-Mails codiert werden sollten, die in ISO-2022-JP, japanische JIS-Zeichensatz 50220 oder möglicherweise SHIFT_JIS codepage 932
- E-Mail-transfer-encoding sollte auf Base64-text-und 7Bit für Html
- E-Mail-Betreff sollte codiert werden separat starten mit "=?ISO-2022-JP?B?" (weiß nicht, was dies bedeuten soll). Ich habe versucht, die Codierung des Themas mit
"=?ISO-2022-JP?B?" + Convert.ToBase64String(Encoding.Unicode.GetBytes(subject))
welche im Grunde gibt die kodierten string als erwartet, aber es nicht präsentiert bekommen, als jeder japanische text in einer E-Mail-Programm
- Ich habe es getestet in Outlook 2003, Outlook Express und GMail
Jegliche Hilfe würde sehr geschätzt werden
Ok, so Stelle ein kurzes update, vielen Dank für die beiden hilfreichen Antworten, ich habe es geschafft, das richtige format und Codierung. Nun, Outlook gibt etwas, das ähnelt das richtige Thema:
=?iso-2022-jp?B?6 Japanese test に各々の視点で語ってもらった。 6相当の防水?=
Jedoch die exakt gleiche E-Mail in Outlook Express gibt Thema wie folgt:
=?iso-2022-jp?B?6 Japanese test 縺ォ蜷・・・隕也せ縺ァ隱槭▲縺ヲ繧ゅi縺」縺溘・ 6逶ク蠖薙・髦イ豌エ?=
Außerdem, wenn die Anzeige in der Ansicht Posteingang in Outlook Express, die E-Mail-Betreff ist noch mehr seltsam, wie diese:
=?iso-2022-jp?B?6 Japanese test ??????????????? 6???????=
Gmail scheint zu funktionieren in ähnlicher Weise wie Outlook, die richtig aussieht.
Ich bekomme einfach nicht meinen Kopf um dieses eine.
InformationsquelleAutor der Frage danijels | 2009-01-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe den Umgang mit japanischen Kodierungen für fast 20 Jahren, und ich kann Mitfühlen mit Ihren Schwierigkeiten. Websites, die ich gearbeitet habe, senden Hunderte E-Mails täglich zu japanischen Kunden, so kann ich mit Ihnen teilen, was für uns gearbeitet.
Zunächst nicht verwenden Shift-JIS. Ich persönlich erhalte Tonnen von japanischen E-Mails und fast nie werden Sie codiert, verwenden Shift-JIS. Ich denke, eine alte (circa Win 98?) version von Outlook Express codiert, der ausgehende mail mit Shift-JIS, aber heute ist Sie einfach nicht sehen, es.
Als Sie herausgefunden haben, müssen Sie die Verwendung von ISO-2022-JP als Zeichencodierung für zumindest alles, was geht in den mail-header. Diese enthält den Betreff, Zeile " An " und " CC " - Zeile. UTF-8 funktioniert auch in den meisten Fällen aber es wird nicht funktionieren auf Yahoo Japan mail, und wie Sie sich vorstellen können, viele japanische Benutzer, die Yahoo Japan mail.
Können Sie die Verwendung von UTF-8 in den Körper der E-Mail, aber es wird empfohlen, dass Sie die base64-Kodierung der UTF-8-codierte japanische text und setzen Sie, dass in den Körper anstelle von rohem UTF-8-text. Doch in der Praxis glaube ich, dass unformatierte UTF-8-text wird gut funktionieren in diesen Tagen, für den Körper der E-Mail.
Als ich oben angedeutet, Sie müssen mindestens test auf Outlook (Exchange), Outlook Express (IMAP/POP3) und Yahoo Japan web-mail. Yahoo Japan ist der schwierigste, weil ich glaube, Sie verwenden EUC für die Kodierung der web-Seiten, und so müssen Sie den richtigen Standard für Ihre E-Mails, oder Sie wird nicht (ISO-2022-JP ist der standard für das versenden von japanischen E-Mails).
Auch, deine Betreffzeile sollte nicht mehr als 75 Zeichen pro Zeile. Das heißt, 75 Zeichen nach du hast codiert in ISO-2022-JP " und "base64", nicht 75 Zeichen vor der Konvertierung. Wenn Sie mehr als 75 Zeichen, die Sie brauchen, um zu brechen Ihren codierten Gegenstand in mehrere Zeilen, beginnend mit "=?iso-2022-jp?B?" und endet mit "?=" auf jeder Linie. Wenn Sie dies nicht tun, ist das Motiv möglicherweise abgeschnitten (je nach E-Mail-reader, und auch der Inhalt Ihrer Betreff-text). Gemäß RFC 2047:
"Ein" codiert-Wort " darf nicht mehr als 75 Zeichen lang sein, einschließlich 'charset', 'encoding', 'encoded-text', und Trennzeichen. Wenn es wünschenswert ist, zu Kodieren, das mehr text, als in eine "codiert-Wort" von 75 Figuren, mehrere 'encoded-word' s (getrennt durch CRLF SPACE) verwendet werden kann."
InformationsquelleAutor der Antwort 保田ジェフリー
Überprüfen http://en.wikipedia.org/wiki/MIME#Encoded-Word für eine Beschreibung, wie man Kodieren header-Felder in MIME-konforme Nachrichten. Sie scheinen zu fehlen "?=" am Ende Ihrer Gegenstand.
InformationsquelleAutor der Antwort Bombe
=?ISO-2022-JP?B?TEXTTEXT...
ISO_2022-JP bedeutet, dass die Zeichenkette codiert in ISO-2022-JP-Zeichensatz (zB. nicht Unicode)
B bedeutet, der string ist bese64 codiert
In Ihrem Beispiel, Sie sollten nur geben Sie Ihre string in ISO-2022-JP anstelle von Unicode.
InformationsquelleAutor der Antwort dmajkic
Habe ich einige Erfahrung im verfassen und senden von E-Mails in Japanisch...Normalerweise muss man sich davor hüten, welche Codierung verwendet für Betriebssystem, und wie Sie speichern Ihre japanischen Saiten!
Meine E-Mail-Objekte werden üblicherweise wie folgt codiert:
Dann habe ich eine extension-Methode, die die Umwandlung für mich:
InformationsquelleAutor der Antwort
sollte sowas den job zu erledigen in python:
**krass geklaut/adaptiert von:
http://mtokyo.blog9.fc2.com/blog-entry-127.html
InformationsquelleAutor der Antwort si28719e
Zuerst sollten Sie mit Hilfe:
Encoding.GetEncoding("ISO-2022-JP")
konvertieren Sie Ihre Betreff-Zeile in bytes verarbeitet werden, indem Sie Konvertieren.ToBase64String().
=?ISO-2022-JP?B?TEXTTEXT...?= teilt dem empfangenden E-mail-client, welche Kodierung verwendet wurde, auf den Absender zu konvertieren japanischen "Buchstaben" in ein byte-stream.
Aktuell, Sie sind mit UTF-16 Kodieren, aber die Angabe von ISO-2022-JP zu entschlüsseln. Diese sind natürlich zwei verschiedene Kodierungen, denke ich, genau wie ISO-8859-1 unterscheidet sich von Unicode (am meisten verbreitet western-europe chars sind vertreten durch ein byte im ISO-XXX, aber zwei Byte im Unicode).
Ich bin mir nicht sicher, was du meinst, über UTF-8 als Bürger zweiter Klasse. Solange das empfangende E-mail-client versteht UTF-8 und ist in der Lage, konvertieren Sie es in das aktuelle Gebietsschema "Japanisch" ist alles in Ordnung.
InformationsquelleAutor der Antwort liggett78
InformationsquelleAutor der Antwort avanish
Einführung der japanischen Kodierung, e-mail passiert auf JUNET(UUCP basiert nation-wide network) in den frühen 90er Jahren.
Damals, RFC1468 definiert wurde.
Wenn Sie Folgen Sie RFC1468 im nur-text-E-mail, es wäre kein problem.
Wenn Sie behandeln möchten html E-mail, RFC1468 ist nutzlos, außer für den Kopf teilen.
InformationsquelleAutor der Antwort kmugitani
Hier ist, was ich verwenden zum senden von japanischen E-Mails. Betreffzeile sieht gut aus in Outlook 2010, Google Mail und auf dem iPhone.
InformationsquelleAutor der Antwort Jahmic