encodage de sujet d'email japonais
Aparently, codant pour des japonais des e-mails est un peu difficile, je suis en train de découvrir moi-même. Dans le cas où il ya des experts (même ceux avec une expérience limitée), puis-je s'il vous plaît avoir quelques indications sur comment le faire, comment le tester et comment le vérifier?
Garder à l'esprit que je n'ai jamais mis les pieds n'importe où près de Japon, c'est simplement que le produit que je suis en développement n'y est utilisé, entre autres lieux.
Ce qui (je pense) je sais que jusqu'à présent est la suivante:
- Japonaise e-mails doivent être codés en ISO-2022-JP, Japonais JIS codepage 50220 ou, éventuellement, SHIFT_JIS page de codes 932
- E-mail codage de transfert, devrait être mis en Base64 pour le texte brut et 7 bits pour le code Html
- Objet du mail doit être codée séparément pour commencer avec "=?ISO-2022-JP?B?" (vous ne savez pas ce que c'est censé vouloir dire). J'ai essayé de codage de l'objet avec
"=?ISO-2022-JP?B?" + Convert.ToBase64String(Encoding.Unicode.GetBytes(subject))
qui donne essentiellement la chaîne codée comme prévu, mais il n'est pas présenté comme tout texte japonais dans un programme de messagerie électronique
- Je l'ai testé dans Outlook 2003, Outlook Express et GMail
Toute aide serait grandement appréciée
Ok, donc pour publier une brève mise à jour, merci pour les deux réponses utiles, j'ai réussi à obtenir le bon format et l'encodage. Maintenant, Outlook donne quelque chose qui ressemble à l'objet exact:
=?iso-2022-jp?B?6 Japanese test に各々の視点で語ってもらった。 6相当の防水?=
Cependant, exactement le même e-mail dans Outlook Express donne sujet comme celui-ci:
=?iso-2022-jp?B?6 Japanese test 縺ォ蜷・・・隕也せ縺ァ隱槭▲縺ヲ繧ゅi縺」縺溘・ 6逶ク蠖薙・髦イ豌エ?=
En outre, lors de l'affichage dans la Boîte de réception dans Outlook Express, l'objet de l'email est encore plus bizarre, comme ceci:
=?iso-2022-jp?B?6 Japanese test ??????????????? 6???????=
Gmail semble être de travailler dans la mode similaire à Outlook, ce qui semble correct.
J'ai juste ne peux pas obtenir ma tête autour de celui-ci.
source d'informationauteur danijels
Vous devez vous connecter pour publier un commentaire.
J'ai du faire avec les encodages Japonais depuis près de 20 ans et donc, je peux sympathiser avec vos difficultés. Les sites que j'ai travaillé envoyer des centaines d'e-mails au quotidien pour les clients Japonais donc je peux partager avec vous ce qui a fonctionné pour nous.
Tout d'abord, ne pas utiliser Shift-JIS. J'ai personnellement de recevoir des tonnes de Japonais e-mails et presque jamais sont-ils codés à l'aide de Shift-JIS. Je pense que l'ancien (vers Win 98?) la version de Outlook Express codé de courrier sortant à l'aide de Shift-JIS, mais de nos jours, vous n'avez tout simplement pas le voir.
Comme vous l'avez compris, vous devez utiliser l'ISO-2022-JP que votre codant pour au moins tout ce qui se passe dans l'entête du mail. Cela comprend le Sujet, À la ligne, et la ligne CC. UTF-8 sera également travailler dans la plupart des cas, mais il ne fonctionnera pas sur Yahoo Japan mail, et comme vous pouvez l'imaginer, de nombreux utilisateurs Japonais utilisation de Yahoo Japan mail.
Vous pouvez utiliser l'UTF-8 dans le corps de l'email, mais il est recommandé que vous base64 encode UTF-8 de texte Japonais et le mettre dans le corps au lieu de raw du texte UTF-8. Cependant, dans la pratique, je crois que raw texte UTF-8 sera beau travail ces jours-ci, pour le corps de l'email.
Comme je l'ai mentionné ci-dessus, vous devez au moins tester sur Outlook (Exchange), Outlook Express (IMAP/POP3), et Yahoo Japon messagerie web. Yahoo Japon est la plus délicate, parce que je crois qu'ils utilisent EUC pour l'encodage de leurs pages web, et si vous avez besoin de suivre les normes appropriées pour vos e-mails ou ils ne fonctionnent pas (ISO-2022-JP est le standard pour l'envoi de Japonais e-mails).
Aussi, votre ligne d'objet ne doit pas dépasser 75 caractères par ligne. C'est, 75 caractères après vous avez encodé en ISO-2022-JP et base64, pas 75 caractères avant la conversion. Si vous dépasser 75 caractères, vous devez briser votre codé sujet en plusieurs lignes, en commençant par "=?iso-2022-jp?B?" et se terminant par "?=" sur chaque ligne. Si vous ne le faites pas, votre sujet peut obtenir tronquée (selon le lecteur de messagerie, et également le contenu de votre texte de l'objet). Selon la RFC 2047:
"Une" des mots codés " ne peut pas être plus de 75 caractères, y compris les 'charset', 'encoding', 'codé-texte", et des séparateurs. S'il est souhaitable d'encoder plus de texte que s'inscrira dans un 'des mots codés" de 75 caractères, de multiples " des mots codés (séparés par un CRLF ESPACE) peut être utilisé."
Vérifier http://en.wikipedia.org/wiki/MIME#Encoded-Word pour une description sur la façon de coder les champs d'en-tête compatible MIME des messages. Vous semblez être manquant “?=” à la fin de votre sujet.
=?ISO-2022-JP?B?TEXTTEXT...
ISO_2022-JP signifie que la chaîne est encodé en ISO-2022-JP page de codes (par exemple. non Unicode)
B signifie que la chaîne est bese64 codé
Dans votre exemple, vous devez simplement fournir votre chaîne dans la norme ISO-2022-JP place de l'Unicode.
J'ai une certaine expérience de la composition et de l'envoi de mail en japonais...Normalement, vous devez vous méfier de ce que l'encodage utilisé pour le système d'exploitation et le mode de stockage des japonais des chaînes!
Mon Mail les objets sont normalement codée comme suit:
Puis j'ai une méthode d'extension qui fait la conversion pour moi:
quelque chose comme cela devrait obtenir le travail fait en python:
**manifestement volé/adapté de:
http://mtokyo.blog9.fc2.com/blog-entry-127.html
Tout d'abord, vous devriez être en utilisant:
Encoding.GetEncoding("ISO-2022-JP")
pour convertir votre ligne d'objet en octets qui seront traitées par le Convertir.ToBase64String().
=?ISO-2022-JP?B?TEXTTEXT...?= indique la réception de client de messagerie quel encodage est utilisé du côté de l'expéditeur à convertir japonais "lettres" dans un flux d'octets.
Actuellement, vous utilisez UTF-16 pour coder, mais la spécification ISO-2022-JP pour les décoder. Ce sont évidemment deux codages différents, je suppose que, tout comme ISO-8859-1 est différente de l'Unicode (le plus étendu d'europe de l'ouest caractères sont représentés par un octet dans la norme ISO-XXX, mais deux octets Unicode).
Je ne suis pas sûr de ce que tu veux dire à propos de l'UTF-8 en cours de citoyen de seconde classe. Tant que la réception du courrier du client comprend UTF-8 et est en mesure de convertir le courant de paramètres régionaux japonais, tout va bien.
Introduction de Japonais de l'encodage à l'e-mail qui est arrivé à JUNET(UUCP en fonction de la nation à l'échelle du réseau) dans le début des années 90.
À l'époque, RFC1468 a été défini.
Si vous suivez RFC1468 en texte brut mail, il n'y aurait pas de problème.
Si vous voulez gérer les mails en html, RFC1468 est inutile sauf pour les en-tête des pièces.
Voici ce que j'utilise pour envoyer des Japonais des e-mails. La ligne de sujet, l'air parfait dans Outlook 2010, gmail et sur iPhone.