メールに返信すると本文が文字化けするNo.07978
さん 21/04/20 12:44
 
 お世話になっております。

 ある特定のメールに返信すると、メールが文字化けしてしまいます。

 送信用のエディタ起動時のマクロに、下記のものを登録しています。

----- マクロ内容 -----
loaddll "tkinfo.dll";
#n = dllfunc("SetCharSet", "utf-8");
clearupdated;
--------------------

 また、返信用のテンプレートには下記のものを指定しています。

----- マクロ内容 -----
 お世話になっております。

$c$-
$(QuotedRootBody)
--------------------

 この状態で該当メールに返信すると、例えば、1行目が下記のような感じに化けて
しまいます。

?@?¨?¢?b?E?E?A?A?¨?e?U?・?B

 これはどのようにしたら修正できますでしょうか。
 該当のメールが必要であれば、別途メールで送信することも可能です。
 環境は、Windows10 20H2 64ビット、秀丸メール 6.99β13です。

 以上、よろしくお願いいたします。

[ ]
RE:07978 メールに返信すると本文が文字化No.07980
秀まるお2 さん 21/04/20 13:59
 
 お手数かけてすみません。問題の現象は秀丸メールで解決しないといけない問題だ
と思うのですが、再現できないと直せないので、すみませんが問題のメールを送って
ほしいです。

 「ファイル・エクスポート...」で受信ログをエクスポートした上で、そのファイ
ル中のメールアドレスや個人情報を伏せ字にするか削除するなどして送ってほしいで
す。たぶんFrom:やTo:などは伏せ字になってても現象は再現できると思いますので。

 送り先は、"maruo@mitene.or.jp"になります。

[ ]
RE:07980 メールに返信すると本文が文字化No.07981
さん 21/04/20 14:09
 
 お世話になります。

 先ほど送付させていただきました。
 よろしくお願いいたします。

 それでは。

[ ]
RE:07981 メールに返信すると本文が文字化No.07982
秀まるお2 さん 21/04/20 14:50
 
 こちらで簡単にテストした限りは再現しないようですが、化け方としては、「お世
話になっております」の部分が、元々のShift-JISだったのをUTF-8と誤解釈した時に
起きる化け方のようではあります。

 返信元メールは欧文の普通のメールのように思います。

 なんとか再現方法を考えてみたい所ですが、すみませんが3点テストお願いしたい
です。

 1.とりあえず、エディタ起動時のマクロを無しにして化けないかどうかテストして
   みてほしい。

    僕の所だと、「お世話になっております」がちゃんと出てきつつ、フォントが
    欧文(標準だとCourier Newフォント)なので、日本語がぎこちないフォントに
    なって出てきますけども。

 2.「1」で化けないとしたら、そこから「設定・文字コード・多国語混在ユニ
   コード」を実行して化けるかどうか教えてほしい。

 3.もう1回「1」で化けない状態まで戻って、今度はそこからマクロ実行して
   化けるかどうかテストしてほしい。

 です。どうでしょうか。

[ ]
RE:07982 メールに返信すると本文が文字化No.07983
秀まるお2 さん 21/04/20 15:02
 
 再現テストしてて、1つ別のバグを見つけてしまいました。

 マクロ内容を

loaddll "tkinfo.dll";
#n = dllfunc("SetCharSet", "iso-8859-1");
clearupdated;

 みたいに欧文に変更する風にすると、マクロ実行時に「文字コード変換指定」って
タイトルの問い合わせメッセージが出てしまうようでした。この問い合わせメッセー
ジは受信系メールでは出てもいいんですが、送信系メールでは出てはいけないです。
とりあえずこのバグは修正させていただきます。

 あと、メールの化け方も、Shift-JISの文字列をutf-8と解釈した場合ともちょっと
微妙に違うような気もします。Shift-JISの文字列を欧文と解釈してる可能性もある
かもしれません。

[ ]
RE:07982 メールに返信すると本文が文字化No.07984
さん 21/04/20 15:19
 
 お世話になります。

> 1.とりあえず、エディタ起動時のマクロを無しにして化けないかどうかテストして
>   みてほしい。

 これはすでにテストしていましたが、文字化けせず、きちんと表示されました。

> 2.「1」で化けないとしたら、そこから「設定・文字コード・多国語混在ユニ
>   コード」を実行して化けるかどうか教えてほしい。

 この時点で化けてしまいます。

> 3.もう1回「1」で化けない状態まで戻って、今度はそこからマクロ実行して
>   化けるかどうかテストしてほしい。

 同じく、化けてしまいました。

 以上、よろしくお願いいたします。

[ ]
RE:07984 メールに返信すると本文が文字化No.07985
秀まるお2 さん 21/04/20 15:47
 
 すみません。もうあと2つテストお願いしたいです。

 「全般的な設定・上級者向け・多国語対応」の中に、

    □ 返信メールの文字コードを返信元メールに合わせる

 のオプションがあって、標準はONになってます。これをOFFにして再現するかどう
かテストしてほしいのと、もしもここをOFFにして起きないなら、とりあえずその設
定で使ってほしいかなぁというのはあります。

 もしそこをOFFにしても起きるとしたら、「返信メール」コマンド実行直後に化け
るのか、それとも、やはりマクロ実行時(または文字コード切り替えコマンド実行
時)に起きるのかも教えてほしいです。

 さらにもう1つテストお願いするとしたら、例えばご自身からご自身宛に何か欧文
文字(ウムラウト付きの文字)入りの欧文文字コードのメールを送って、それに対し
て返信メールを実行して同じように文字化けが再現するかどうかもテストしてみてほ
しいです。それもし起きないなら、やはり問題のメールのみ起きるということになる
ことが分かるのですが。

 再現方法未だよく分かりません。

[ ]
RE:07985 メールに返信すると本文が文字化No.07986
さん 21/04/20 16:30
 
 お世話になります。

> 「全般的な設定・上級者向け・多国語対応」の中に、
>
>    □ 返信メールの文字コードを返信元メールに合わせる
>
> のオプションがあって、標準はONになってます。これをOFFにして再現するかどう
>かテストしてほしいのと、もしもここをOFFにして起きないなら、とりあえずその設
>定で使ってほしいかなぁというのはあります。

 上記設定をオフにしたら、解決しました。
 しばらくこれで使ってみます。

 それでは。

[ ]
RE:07986 メールに返信すると本文が文字化No.07987
秀まるお2 さん 21/04/20 17:42
 
 そこのオプションをOFFにして一応問題が回避できつつも、たぶんですが、「設
定・文字コード」から一度欧文を選んで、それからまた「多国語混在ユニコード」を
選ぶとまた再現できるんじゃないかと思います。

 文字コード変更の処理はそんなに難しいことはしてなくて、再現方法も原因も今の
ところ全然分からずでして、とりあえず、この辺の処理について、dump.txtにいろい
ろ情報出力してみることにします。メール本文の先頭の1行の情報がどう変換された
かも出力するようにしてみます。

 なのですみませんが最後のテストお願いとして、次のβ版にて再現テストしていた
だいて、その時出てくるdump.txtを教えていただく作戦をお願いしたいです。

[ ]
RE:07987 メールに返信すると本文が文字化No.07988
さん 21/04/20 17:49
 
 お世話になります。

> 文字コード変更の処理はそんなに難しいことはしてなくて、再現方法も原因も今
>のところ全然分からずでして、とりあえず、この辺の処理について、dump.txtにい
>ろいろ情報出力してみることにします。メール本文の先頭の1行の情報がどう変換
>されたかも出力するようにしてみます。
>
> なのですみませんが最後のテストお願いとして、次のβ版にて再現テストしてい
>ただいて、その時出てくるdump.txtを教えていただく作戦をお願いしたいです。

 了解しました。
 よろしくお願いいたします。

 それでは。

[ ]
RE:07988 メールに返信すると本文が文字化No.07994
さん 21/04/21 12:38
 
 お世話になります。

 β14でログを取ったので、下記に貼り付けます。

12:30:01.314 (16764) tid=3904 EditorCmd 45109
12:30:01.314 (15840) tid=3904 UpdateContentType 新文字コード=8 旧文字コード=
1 euc=0 送信系=1 編集可=1 flags=00244000
12:30:01.314 (15959) tid=3904 cpPrev=1252 cpNew=932
12:30:01.314 (15967) tid=3904 Pre   81 40 82 A8 90 A2 98 62 82 C9 82 C8 82 C
1 82 C4 82 A8 82 E8 82 DC 82 B7 81
12:30:01.314 (16028) tid=3904 Utf8  C2 81 40 E2 80 9A C2 A8 C2 90 C2 A2 CB 9
C 62 E2 80 9A C3 89 E2 80 9A C3 88 E2 80 9A C3 81 E2 80
12:30:01.321 (16039) tid=3904 New   w0081 40 w201A 81 4E w0090 w00A2 w02DC 6
2 w201A w00C9
12:30:01.328 (30171) tid=3904 SetUpdated()
12:30:01.329 (16057) tid=3904 Content-Type: deleted
12:30:01.329 (16085) tid=3904 text/plain; charset=utf-8
12:30:01.340 (16112) tid=3904 New charset=8 prev=1
12:30:01.340 (16118) tid=3904 After w0081 40 w201A 81 4E w0090 w00A2 w02DC 6
2 w201A w00C9
Content-Type: text/plain; charset=utf-8
X-TuruKame-CharSet: utf-8
12:30:01.340 (16145) tid=3904 iIniCharSet=128 fFiletypeEncode=1
12:30:01.340 (18960) tid=3904 EditorCmd 45109 ret 1

 以上、よろしくお願いいたします。

[ ]
RE:07994 メールに返信すると本文が文字化No.07996
秀まるお2 さん 21/04/21 14:47
 
 とりあえず、文字コード変更の前の段階の、返信メールの内容自体が僕の想定外の
状態になってることだけ分かりました。

 文字コードの値は欧文になってるんですが、秀丸エディタ相当部分の中身はShift-
JISでテキストデータがセットされてるようです。なぜそうなるのか原因を探してみ
ます。

[ ]
RE:07996 メールに返信すると本文が文字化No.07998
秀まるお2 さん 21/04/22 12:10
 
 1つ無理矢理な再現方法を見つけました。返信メールを作成したウィンドウ上で、
マクロで、

    setencode 1,1,0;

 を実行すると再現可能なことを見つけました。これとは別に再現の条件があるにし
ても、たぶんこれと同じことが起きてるんだろうと思いまして、その状況に対しての
対策を入れてみました。

32bit版:
https://hide.maruo.co.jp/software/bin3/hmmail699b15_signed.exe

64bit版:
https://hide.maruo.co.jp/software/bin3/hmmail699b15_x64_signed.exe

 これで一応大丈夫なはずじゃないかと思いますが、再現方法が不明な点もあるので、
すみませんがまたdump.txtのログを取って教えてほしいです。

 ログは、「返信メール」コマンドを実行して「設定・文字コード・多国語混在ユニ
コード」を実行するまでの記録をお願いしたいです。ログにメールの件名が出るので
それは伏せ字にしていただいていいです。(またはメールで送っていただくか)

 ちなみに僕の所では以下のような記録になります。

-------------------------------------------------------------------------
12:08:46.761 (20709) Cmd 40019                 ←「返信メール」コマンドの実行。
12:08:46.761 (32945) MuteOther(0)
12:08:46.761 (1031) ProcessExecEvent 37
12:08:46.761 (1874) ProcessExecEvent exit
12:08:46.761 (33256) ReleaseMuteOther()
12:08:46.761 (27862) will account load
12:08:46.762 (27864) will Override
12:08:46.762 (27936) will template
12:08:46.763 (27971) will reply-list
12:08:46.764 (28475) LoadTemplate charset=1 autolang=1 w3000 w304A w4E16 w8A
71 w306B w306A
12:08:46.764 (28569) MakeReply charset=1 iIniCharSet=0 autolang=1
12:08:46.768 (32710) CreateThreadAndViewFrame
12:08:46.768 (32945) MuteOther(0)
12:08:46.768 (37699) StartThread tid=7248
12:08:46.768 (37544) tid=7248 HidemaruThreadProc start
12:08:46.768 (31863) tid=7248 ThreadFunc
12:08:46.778 (32006) tid=7248 ViewFrame created 000F05AA
12:08:46.779 (32032) tid=7248 HmCreate
12:08:46.779 (   0) tid=7248 call WinMainSub
12:08:46.784 (   0) tid=7248 FrameWndProc: WM_CREATE
12:08:46.784 (   0) tid=7248 ClientWndProc: WM_CREATE
12:08:46.786 (1071) tid=7248 TEXTS.New() passed fRef OK
12:08:46.791 (   0) tid=7248 return WinMainSub
12:08:46.791 (32037) tid=7248 HmCreate return
12:08:46.801 (14183) tid=7248 InitOuterHidemaru
12:08:46.802 (36212) tid=7248 ProcessTemplate charset=1 w3000 w304A w4E16 w8
A71 w306B w306A
12:08:46.802 (12568) tid=7248 EditorWnd:TKINFO 1
12:08:46.802 (9063) tid=7248 tkinfo 1
12:08:46.802 (12576) tid=7248 EditorWnd:TKINFO 1 return 1342DBA0
12:08:46.802 (12568) tid=7248 EditorWnd:TKINFO 86
12:08:46.802 (9063) tid=7248 tkinfo 86
12:08:46.802 (12576) tid=7248 EditorWnd:TKINFO 86 return 1342DBA0
12:08:46.819 (8019) tid=7248 SetConfig iCharset=1 iIniCharSet=0
12:08:46.827 (3870) tid=7248 SetText at editor charset=1 iIniCharSet=0 w3000
 w304A w4E16 w8A71 w306B w306A
12:08:46.834 (32801) CreateThreadAndViewFrame: event2
12:08:46.873 (11801) tid=7248 WM_SIZE cx,cy=992,652 lParam=976,593
12:08:46.887 (8019) tid=7248 SetConfig iCharset=1 iIniCharSet=0
12:08:46.888 (16236) tid=7248 SetForegroundTopWindow 000F05AA==HidemaruFrame
12:08:46.888 (16288) tid=7248 SetLastForeground
12:08:46.893 (   0) tid=7248 GENERAL_SETIMEOPEN 1
12:08:46.894 (32211) tid=7248 StartMessageLoop
12:08:46.894 (32767) CreateThreadAndViewFrame: waiting hevent OK
12:08:46.894 (32861) CreateThreadAndViewFrame() normal exit
12:08:46.894 (16236) SetForegroundTopWindow 000F05AA==HidemaruFrame
12:08:46.894 (16288) SetLastForeground
12:08:46.894 (33256) ReleaseMuteOther()
12:08:46.894 (28681) Check: root=1 dwRootID=A9CCDC24 cmdReasonCreated=40019
folpaRoot.iFolder=0
12:08:46.895 (28683) 返信 Re: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
12:08:46.895 (22812) 40019 ret 1
12:08:49.983 (16855) tid=7248 EditorCmd 45109                     ←「多国語
混在ユニコード」コマンドの実行。
12:08:49.983 (15929) tid=7248 UpdateContentType 新文字コード=8 旧文字コード=
1 euc=0 送信系=1 編集可=1 flags=00244000 iIniCharSet=0
12:08:49.984 (16052) tid=7248 cpPrev=1252 cpNew=932
12:08:49.984 (16060) tid=7248 Pre   w3000 w304A w4E16 w8A71 w306B w306A
12:08:49.984 (16121) tid=7248 Utf8  E3 80 80 E3 81 8A E4 B8 96 E8 A9 B1 E3 8
1 AB E3 81 AA E3 81 A3 E3 81 A6
12:08:49.995 (8019) tid=7248 SetConfig iCharset=8 iIniCharSet=128
12:08:49.995 (16132) tid=7248 New   81 40 82 A8 90 A2 98 62 82 C9 82 C8 82 C
1 82 C4 82 A8 82 E8 82 DC 82 B7
12:08:49.997 (30276) tid=7248 SetUpdated()
12:08:49.997 (16150) tid=7248 Content-Type: deleted
12:08:49.998 (16178) tid=7248 text/plain; charset=utf-8
12:08:50.005 (8019) tid=7248 SetConfig iCharset=8 iIniCharSet=128
12:08:50.007 (16205) tid=7248 New charset=8 prev=1
12:08:50.007 (16211) tid=7248 After 81 40 82 A8 90 A2 98 62 82 C9 82 C8 82 C
1 82 C4 82 A8 82 E8 82 DC 82 B7
Content-Type: text/plain; charset=utf-8
X-TuruKame-CharSet: utf-8
12:08:50.007 (16236) tid=7248 iIniCharSet=128
12:08:50.007 (19051) tid=7248 EditorCmd 45109 ret 1

[ ]
RE:07998 メールに返信すると本文が文字化No.08000
さん 21/04/22 12:51
 
 お世話になります。

 先ほど「dump.txt」を送付させていただきました。
 それから、訂正です。
 いろいろ試して気付いたんですが、どうも返信メールを作成した時点ですでに文字
化けしているようです。
 ただ、なぜか、秀丸リーダーで1行読みをさせると、文字化けせずに読み上げられ
ており、「gettext」でも「 お世話になっております。」という文字列が取得でき
ています。
 しかし、1文字読みをさせると、文字化けした内容が読み上げられる状況でした。

 以上、よろしくお願いいたします。

[ ]
RE:08000 メールに返信すると本文が文字化No.08001
秀まるお2 さん 21/04/22 14:02
 
 お手数かけてすみません。とりあえず想定外の箇所を1つ見つけました。

12:45:19.714 (3870) tid=14528 SetText at editor charset=1 iIniCharSet=429496
7068 ....

 って所が僕と違ってるようです。

 なぜこうなるのかは秀丸エディタ相当部分のソースコードを追っかけないとダメな
ようです。

 なんとか調べてみます。

[ ]
RE:08001 メールに返信すると本文が文字化No.08004
秀まるお2 さん 21/04/22 16:14
 
 秀丸エディタのソースコードを見直して再現の条件が分かりました。秀丸エディタ
の動作環境の「ファイル・エンコード1」の「新規作成やASCIIの時」の所がUnicode
(UTF-8)とかになってると起きるようでした。

 修正してまたβ版アップロードさせていただきます。

[ ]
RE:08004 メールに返信すると本文が文字化No.08017
さん 21/04/23 10:46
 
 お世話になります。

> 秀丸エディタのソースコードを見直して再現の条件が分かりました。秀丸エディ
>タの動作環境の「ファイル・エンコード1」の「新規作成やASCIIの時」の所がUnico
>de(UTF-8)とかになってると起きるようでした。

 確かに、その設定になっていました。

> 修正してまたβ版アップロードさせていただきます。

 ありがとうございます。
 よろしくお願いいたします。

 それでは。

[ ]
RE:08017 メールに返信すると本文が文字化No.08028
さん 21/04/23 18:36
 
 お世話になります。

 修正いただき、ありがとうございます。
 6.99β16で修正されていることを確認しました。
 お手数をおかけしました。

 以上、今後ともよろしくお願いいたします。

[ ]