PHPで、mb_send_mail() を使ってメールを送信していましたが、 半角カタカナや①や㎡など機種依存文字が入ると?に文字化けする問題がありました。 iso-2022-jp で扱うことができないことになっているので、 普通ならば iso-2022-jp で扱える形式に変換するところですが、 思い切って無視して「そのまま」送信することで今回問題回避しました。 参考にしたのは次のサイト http://d.hatena.ne.jp/u87/20100308/ mb_language('ja'); mb_internal_encoding('UTF-8'); $e_subject = mb_encode_mimeheader($subject); $e_body = mb_convert_encoding($body, 'ISO-2022-JP-MS'); $mail_header = "
問題発生 長いメールヘッダの規定 MIMEの規定 正しいメールヘッダ復元の実装 問題発生 ある方より、メール投稿利用時に長い日本語タイトルを付けると、途中に半角スペースが入ってしまうというバグ報告を受けました。 Subject: =?ISO-2022-JP?B?GyRCPmFHKz5hRys+YUcrPmFHKz5hRys+YUcrPmFHKz5hGyhC?= =?ISO-2022-JP?B?GyRCRys+YUcrPmFHKz5hRys+YUcrPmFHKz5hRys+YUcrPmFHKz5hGyhC?= のようにMIMEエンコードが長くなり空白が入ったときに、この空白がデコードされてもそのまま残ってしまうことが原因です。やっつけならこの空白を除去するだけで良いのですが、やっつけプログラムは最低なのできちんと調査してみました。 長いメールヘッダの規定 RFC 2822「Internet
このページについての説明・注意など PHP の mbstring 拡張モジュールについて調べてみました。mbstring 拡張モジュールは、PHP マニュアル : マルチバイト文字列関数 (mbstring) にも書かれていない機能や制約が多くあります。そのあたりをソースコードを確認しながらまとめてみました。 更新内容については、更新履歴を参照してください。 ソースコードの確認は主に PHP 5.2.5 〜 PHP 5.3.0 で行いました。PHP 4.x に対する記述もありますが、細かいバージョン等については十分に確認できていないものもあります。このページを読んで、間違い、誤字、脱字などがを見つけましたら、はてなの日記、または、メールなどで教えてください。 mbstring を使用する方法 静的ライブラリとして組み込む方法 共有ライブラリとして使用する方法 Windows 環境の場合 P
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く