スキップしてメイン コンテンツに移動

投稿

ラベル(iPhone)が付いた投稿を表示しています

今日こそ終止符!iPhoneの標準メーラーで添付ファイル名が文字化けする原因とその対応

OutlookからiPhoneにメールを送ると、添付ファイル名が =?UTF-8?Q?...?= と化ける問題。長年「相性の問題」で片付けられてきたこの怪奇現象に、休日の半日を潰してトドメを刺してきました。 1. 境界線の発見:「5Nの法則」 実験の結果、ファイル名に日本語(非ASCII)が混じっている場合、ある一定の条件でエンコード方式が切り替わることが分かりました。それが以下の 「5Nの法則」 です。 5Nの法則: 非ASCII文字を N 個含むとき、ASCII文字(英数字)が 5N 個に達した瞬間にiPhoneで文字化けが発生する。 非ASCII数 (N) Base64限界 (ASCII) 文字化け発動 (ASCII) 1文字 (あ) 4文字 5文字以上 2文字 (あい) 9文字 10文字以上 3文字 (あいう) 14文字 15文字以上 この法則はUTF-8だけでなく、欧州圏の iso-8859-1 (Latin-1) でも全く同様に発動しました。 2. なぜ「5」なのか?数学的背景 Outlookはメールヘッダーを1バイトでも節約しようと、以下の2つのエンコードを動的に使い分けています。 MIME-B (Base64): 全体を1.33倍にする。 MIME-Q (Quoted-...

Outlookは添付ファイル名をMIME-BエンコードするときとMIME-Qエンコードするときがある ~ OutlookでUTF-8を使ったら、iPhoneの標準メーラーで添付ファイル名が文字化けした話 ~

Outlook で Unicode (UTF-8) を使うときのお話として聞いてね。 あ、良かったらこちらもどうぞ 【Outlookで自動改行させないための設定 ~もういい加減 UTF-8 / base64 でよくね?~】 https://chibitcpu.blogspot.com/2025/12/outlook.html RFCも絡めてまとめてみたので、サクッと対応したい人はこちら 【今日こそ終止符!iPhoneの標準メーラーで添付ファイル名が文字化けする原因とその対策】 https://chibitcpu.blogspot.com/2026/03/outlook-iphone-filename-encoding-5n.html さて・・・  iPhoneの標準メーラーで添付ファイル名が文字化けした。(正確には「復号してくれなかった」) =?utf-8?Q?.... 今までと同じ方法でファイルを添付して送っていたのに、なぜか表示されない。 そこで、表示できるときとできないときの違いを知りたくて、メールのソースを表示してみた。 すると ■ 表示できる方 filename="=?utf-8?B?..." ■ 表示できない方 filename="=?utf-8?Q?..." できる方は 「B」エンコーディング (Base64)、できない方は 「Q」エンコーディング (Quoted-Printable っぽいやつ) だった。 おいおい、なんで違うんだよって思って、Copilotに聞いてみた。 Q. Outlook2019を使っています。ファイル名に日本語を含む添付ファイルを送るとき、ファイル名が「B」エンコーディングされるときと、「Q」エンコーディングされるときがあります。「B」エンコーディングで固定したいのですが、どうすればいいですか? A. 結論から言うと、Outlook 2019 では添付ファイル名の符号化方式をユーザー側で固定する設定は存在しません。これは仕様であり、Outlook が内部ロジックに基づいて自動的に選択しているためです。ただし、どのような条件で 「B」/「Q」が選ばれるのかは不明です。ただ 、「B」エンコーディング に“寄せる”ために現実的にできる対策があります。 まじかよ。仕様かよ。 Base64に「寄せ...