質問 |
||
| 質問者:seiryu877 | PCから携帯へのメールでauが文字化け | |
|---|---|---|
困り度:
|
仕事でお客様から登録メールが来たら自動的に 文章(メモ帳でtxtファイルを作成)を返信するように メールルール設定したのですが・・・・ docomo、softbankは問題なく送れたのですが auだけが文字化けが起きてしまいます。 機種依存文字や半角カナの使用はしておりません。 同じ内容を普通にメールすればauも文字化けしなかったのですが 自動返信にすると必ず文字化けしてしまいます。 どうしたら文字化けせずに自動返信出来るんでしょうか? 状況詳細 ・WindowsLiveメール使用(メールアドレスはOCN) ・メール送信形式はテキスト形式(MIME エンコードなし 8ビットチェックなし) ・送信メッセージのエンコード設定は日本語(JIS) ・色々調べてて出てきてた、シフトJISは選択欄にない 仕事で重要な事なので是非よろしくお願いします。 |
|
質問投稿日時:08/03/28 16:15 質問番号:3902270 |
||
回答 |
|
| 回答者:chie65536 | >これはJISコードにしてからBASE64エンコードすると言う意味でよろしいでしょうか? そうです。 >また、漢字の部分って言うのはひらがな含む全角での文字が対象でいいんですか? 正確には「ASCII文字以外」です。16進文字コードで言うと「20H〜7EH以外」です。 >「タイトルを固定にしてしまう」とはどう言う事なんでしょうか・・ タイトルの内容が毎回違う場合は、毎回、エンコード作業が必要です。 しかし「タイトルが固定されている」つまり「タイトルがいつも同じ」なら「エンコード済みの固定の文字列をセットするだけ」で済むので、複雑な処理は一切不要になります。 |
|---|---|
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/02 11:01 回答番号:No.4 |
|
| この回答へのお礼 | 度々の回答ありがとうございます。 |
回答良回答20pt |
|
| 回答者:chie65536 | >あとはタイトルの文字化けだけの問題が残りましたので タイトル、送信者の表示名などの2バイト文字などは、色々加工が大変です。 例 「漢字 ANK 漢字」 ・漢字と半角に分ける ※1 「漢字」 「 ANK 」 「漢字」 ・JISコードにする 例 「<esc>$B4A;z<esc>(B」 「 ANK 」 「<esc>$B4A;z<esc>(B」 ・漢字部分のみをBASE64エンコードする 例 「GyRCNEE7ehsoQg==」 ※2 「 ANK 」 「GyRCNEE7ehsoQg==」 ・BASE64エンコード部分をMIMEマーカーで括る 例 「=?ISO-2022-JP?B?GyRCNEE7ehsoQg==?=」 ※3 「 ANK 」 「=?ISO-2022-JP?B?GyRCNEE7ehsoQg==?=」 ・1行に戻す 例 「=?ISO-2022-JP?B?GyRCNEE7ehsoQg==?= ANK =?ISO-2022-JP?B?GyRCNEE7ehsoQg==?=」 で完成。 これで「相手は『漢字 ANK 漢字』と言うタイトルを受け取ります。 ※1 MS OutLookは、漢字と半角を分けず、漢字を含む文字列は「半角ごと全部」をエンコードしてしまうが、これは正しくない。 ※2 BASE64エンコードした時、結果の文字数が4の倍数にならない場合、末尾に「=」を足し、文字数を4の倍数にします。 例 GyRCNEE7ehso ↓ GyRCNEE7ehso GyRCNEE7ehsoQ ↓ GyRCNEE7ehsoQ=== GyRCNEE7ehsoQq ↓ GyRCNEE7ehsoQq== GyRCNEE7ehsoQqy ↓ GyRCNEE7ehsoQqy= ※3 「ISO-2022-JP」は大文字が本当だが、MS OutLookは「iso-2022-jp」と小文字になる。大文字にすべき。 これらのエンコードの仕様は「世界標準」で規格統一されているので「必ず行う必要」があります。 エンコードが面倒な場合は「タイトルを固定にしてしまう」のが良いでしょう。 |
|---|---|
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/03/31 16:01 回答番号:No.3 |
|
| この回答へのお礼 | 詳しい説明ありがとうございます。 これはJISコードにしてからBASE64エンコードすると言う意味でよろしいでしょうか? また、漢字の部分って言うのはひらがな含む全角での文字が対象でいいんですか? 「タイトルを固定にしてしまう」とはどう言う事なんでしょうか・・ わからない事多くて申し訳ありません・・・ |
回答 |
|
| 回答者:chie65536 | >文章(メモ帳でtxtファイルを作成)を返信するように >メールルール設定した >・送信メッセージのエンコード設定は日本語(JIS) でしたら、作成するtxtファイルの中身も「JIS」にしなければなりません。 docomo、softbankは「エンコード設定はJISでも、本文がシフトJISなら、何も考えずに、センターからそのまま携帯に送ってしまう」ので文字化けしません。 しかし、auは「エンコード設定がJISなら、本文は7ビットコードの筈なので、センターから携帯に送る前に、本文の中にある8ビットのバイトを7ビットにマスクしてから、携帯に送る」ので、結果、文字化けします。 試しに、txtファイルの中に「矮聿褂」と書いてau携帯に送ってみて下さい。携帯で「矮聿褂」が「abcdef」に化けていれば、8ビット文字が7ビットにマスクされてしまっています。 |
|---|---|
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/03/28 16:59 回答番号:No.2 |
|
| この回答へのお礼 | 回答ありがとうございます。 JISでの文章作成をしたところ本文の文字化けは治りました。 あとはタイトルの文字化けだけの問題が残りましたので もう少し頑張ってみます。 |
回答 |
|
| 回答者:violet430 | 原因が想像できないですね。 Windows Liveメールは必須ですか? 他のソフトを使えばいいと思いますが。 http://www.forest.impress.co.jp/lib/inet/mail/mailer/ |
|---|---|
| 種類:アドバイス どんな人:経験者 自信:参考意見 |
|
| |
回答日時:08/03/28 16:21 回答番号:No.1 |
|
| この回答へのお礼 | 回答ありがとうございます。 自分だけで使ってるPCならその方法も考えたんですが みんなで共有で使っているもので・・・ |