web-dev-qa-db-ja.com

David InfoCenterで読むときに、受信した電子メールの(ロシア語)文字が変わるのはなぜですか?

電子メールソフトウェアとしてDavidInfoCenterを使用していますが、ロシア語の電子メールの一部で問題が発生しています。たとえば、「R」(ロシア語で「Р」)が「Т」として表示されるなど、一部の電子メール(さまざまな人から送信された)では、ほんの数文字です。ロシア語の他の電子メールでは、問題は表示されません。変じゃないですか。誰かがすでに同じ問題を抱えていて、それを引き起こす原因を見つけましたか?

その電子メールを外部メールボックス(インターネット電子メールアカウント)に送信すると、さらに悪化し、すべてのロシア語の文字の代わりに記号が表示されます。

デフォルトのエンコーディングは「ロシア語(ISO)」でした。「ロシア語(Windows)」に変更しましたが、同じ問題が発生します。もう1つの奇妙な反応は、内部メールを作成してロシア語(Тест)で「Test」という名前を付け、テキストウィンドウにТестを入力すると、タイトルが「Oano」に変わることです。ただし、コンテンツはロシア語のままです。

Mailinatorを使用すると、メッセージと件名「Тест」について次のようになります。

Subject: ????
[..]
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----_=_NextPart_000_00017783.4AF7FB71"
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_000_00017783.4AF7FB71
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: base64
0KLQtdGB0YI=
------_=_NextPart_000_00017783.4AF7FB71
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: base64
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv
L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxNRVRBIG5hbWU9R0VORVJBVE9SIGNvbnRl
bnQ9Ik1TSFRNTCA4LjAwLjYwMDEuMTg4NTIiPjwvSEVBRD4NCjxCT0RZIHN0eWxlPSJGT05UOiAx
MHB0IENvdXJpZXIgTmV3OyBDT0xPUjogIzAwMDAwMCIgbGVmdE1hcmdpbj01IHRvcE1hcmdpbj01
Pg0KPERJViBzdHlsZT0iRk9OVDogMTBwdCBDb3VyaWVyIE5ldzsgQ09MT1I6ICMwMDAwMDAiPtCi
0LXRgdGCPFNQQU4gDQppZD10b2JpdF9ibG9ja3F1b3RlPjxTUEFOIGlkPXRvYml0X2Jsb2NrcXVv
dGU+PC9ESVY+PC9TUEFOPjwvU1BBTj48L0JPRFk+PC9IVE1MPg==
------_=_NextPart_000_00017783.4AF7FB71--
3
waszkiewicz

メッセージを分解するには:

件名:????

残念ながら、DavidInfoCenterは正しく機能していません。上記は次のようなものである必要があります。

件名:=?utf-8?Q?= D0 = A2 = D0 = B5 = D1 = 81 = D1 = 82?=

したがって、これは報告して修正する必要があるバグです。

次:

MIMEバージョン:1.0 
 Content-Type:multipart/Alternative; 
 boundary = "----_ = _ NextPart_000_00017783.4AF7FB71"

上記は、各行「----_ = _ NextPart_000_00017783.4AF7FB71」の後に、まったく同じメッセージが異なる形式で見つかることを受信者に伝えています。良い。

次:

このメッセージはMIME形式です。メールリーダーがこの形式を理解していないため
、このメッセージの一部またはすべてが判読できない可能性があります。

上記は、MIMEを理解していない古い電子メールソフトウェアのユーザーに表示されます。良い。

次:

------_ = _ NextPart_000_00017783.4AF7FB71 
 Content-Type:text/plain; 
 charset = "utf-8" 
 Content-Transfer-Encoding:base64 
 0KLQtdGB0YI =

上記は、太字、斜体などのないプレーンテキストです。 FileFormat.infoのすばらしい Online Base64 Decoder を使用すると、0KLQtdGB0YI=Тестに変換されます。ああ、あなたが書いたような小文字のтестではありません...?とにかく、問題ないようです。優れた電子メールクライアントはこの部分を理解する必要があります。

さらに詳しく:0KLQtdGB0YI=は実際には16進数のd0 a2 d0 b5 d1 81 d1 82にデコードされ、上記の件名に同じ16進数が表示されます(はずです)。 (Windows-1252として誤って解釈された場合のように、UTF-8として適切にデコードされない場合、これはТеÑÑ‚として表示されます。)

次:

------_ = _ NextPart_000_00017783.4AF7FB71 
 Content-Type:text/html; 
 charset = "utf-8" 
 Content-Transfer-Encoding:base64 [。 ____] PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv 
 L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu 
 dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxNRVRBIG5hbWU9R0VORVJBVE9SIGNvbnRl 
 bnQ9Ik1TSFRNTCA4LjAwLjYwMDEuMTg4NTIiPjwvSEVBRD4NCjxCT0RZIHN0eWxlPSJGT05UOiAx 
 MHB0IENvdXJpZXIgTmV3OyBDT0xPUjogIzAwMDAwMCIgbGVmdE1hcmdpbj01IHRvcE1hcmdpbj01 
 Pg0KPERJViBzdHlsZT0iRk9OVDogMTBwdCBDb3VyaWVyIE5ldzsgQ09MT1I6ICMwMDAwMDAiPtCi 
 0LXRgdGCPFNQQU4gDQppZD10b2JpdF9ibG9ja3F1b3RlPjxTUEFOIGlkPXRvYml0X2Jsb2NrcXVv [.____。】DGU + PC9ESVY + PC9TUEFOPjwvU1BBTj48L0JPRFk + PC9IVE1MPg ==

上記は、HTML形式のメッセージとまったく同じです。これはほぼ同じように見えますが、タグは開かれた順序で閉じられておらず、idは一意である必要がありますが、id=tobit_blockquoteが2回使用されているため、これはまったく有効なHTMLではありません。この1行のメッセージで。実際、「blockquote」という単語は、別のメッセージから単語Тестをコピーした可能性があることを示唆していますか?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META name=GENERATOR content="MSHTML 8.00.6001.18852"></HEAD>
<BODY style="FONT: 10pt Courier New; COLOR: #000000" leftMargin=5 topMargin=5>
<DIV style="FONT: 10pt Courier New; COLOR: #000000">Тест<SPAN 
id=tobit_blockquote><SPAN id=tobit_blockquote></DIV></SPAN></SPAN>
</BODY></HTML>

また、単純なメッセージのHTMLを送信する必要はありません...

最後に(末尾の2つのダッシュに注意してください):

------_ = _NextPart_000_00017783.4AF7FB71--

これは、すべてのフォーマットの終わりに到達したことを電子メールソフトウェアに通知します。

このテストメッセージでは、ТестOanoになる方法については説明されていません。これは、疑問符がそれに変換されないためです。結局、疑問符は本当の疑問符ではないのかもしれません。とにかく:件名が間違っているのは、正しい件名を送信しない電子メールクライアントのバグです。また、HTMLにはバグがあります。そのソフトウェアの使用を停止します。

5
Arjan

それは確かに文字セットおよび/またはエンコーディングの問題であるに違いありません。現在、Unicodeを使用する場合、「ロシア語(ISO)」や「ロシア語(Windows)」などのすべての異なる文字セットは必要ありません。また、Unicodeを使用する場合、ほとんどのメッセージはUTF-8を使用してエンコードされます。

そう:

  • 文字セットをUnicodeに変更することは役に立ちますか?
  • エンコーディングをUTF-8に変更することは役に立ちますか?
  • そうでない場合:それを受け取った後、テストメッセージのソースを投稿できますか? (質問に追加する前に、電子メールアドレスを[email protected]のようなものに置き換えるように注意してください。)

すべての電子メールクライアントは、実際のソースを表示する方法が異なるため、オンラインサービスを使用するのが、受信した内容を確認する方法を説明する最も簡単な方法かもしれません。

  • Mailinatorアカウントにテストメッセージを送信します。アカウントを作成する必要はありません。@mailinator.comの前に置いたものはすべて機能しますが、そのアドレスを推測した人は誰でも受信トレイを読み取ることができることに注意してください。
  • mailinator.com の受信トレイに移動します
  • 件名をクリックしてメッセージを開きます
  • メッセージを表示しているときに、[(テキストビュー)]リンクをクリックします。

Mailinator Inbox

  • これは次のように表示されます。

    Received: from [..] 
      by [..] 
      for &lt;[email protected]&gt;; Fri, 6 Nov 2009 11:58:10 +0100 (CET)
    Subject: =?utf-8?Q?Test_/_=D1=82=D0=B5=D1=81=D1=82?=
    From: Arjan &lt;[..]&gt;
    Content-Type: text/plain; charset=utf-8; format=flowed
    Message-Id: [..]
    Date: Fri, 6 Nov 2009 11:58:08 +0100
    To: [email protected]
    Content-Transfer-Encoding: quoted-printable
    Mime-Version: 1.0 (Apple Message framework v1076)
    X-Mailer: Apple Mail (2.1076)
    X-Virus-Scanned: by XS4ALL Virus Scanner
    
    A test / =D1=82=D0=B5=D1=81=D1=82 for Super User.
    
    Gr=C3=BC=C3=9Fen!
    
    Arjan.=
    .
    

上記では、一部の個人情報が削除されています。メールアドレスやサーバーの詳細(IPアドレスなど)を表示する必要はありません。

(何らかの理由で、Mailinatorは、UTF-8でエンコードされたメッセージのソース「スーパーユーザーのテスト/тест。Grüßen!」をASCII上記のスクリーンキャプチャで表示します。 ßのüとÃeは通常、デコードされていないUTF-8でエンコードされたテキストです。それでも、件名は問題なく変換されます。最後のドットは実際にはSMTP通信の残りであり、Mailinatorによって削除された可能性があります。 )

2
Arjan