PHP8.2にバージョンアップしたら文字化けが発生して道頓堀に飛び込みたくなった話 by 藤掛治

PHPerKaigi 2024
採択
2024/03/09 14:40〜
Track C
レギュラートーク(20分)

PHP8.2にバージョンアップしたら文字化けが発生して道頓堀に飛び込みたくなった話

藤掛治

皆さんはリリース後に文字化けが発生して、道頓堀に飛び込みたくなったことはありますか?
私はあります(※)。

PHP8.2の下位互換性のない修正の1つにmb_detect_encodingの文字コード検出の仕様変更があります。

私が担当しているメール共有サービスのメールディーラーで、バージョンアップ後に一部の受信メールが文字化けをしました。
原因は受信したメールのエンコード時に、前述のmb_detect_encodingを使っていたことです。

下位互換性がないPHPの仕様変更だったため、文字化けを回避することができませんでした。
その結果、メールヘッダに文字コードの指定がないRFCに準拠していないメールまで対応することとなり、大変苦労しました。

メールディーラーの保守運用・顧客対応チームのリーダである私が、顧客対応で泣きをみたことを中心に苦労した経験をお話いたします。
私と同様に顧客対応されているエンジニアの方々の参考になれば幸いです。

※道頓堀は大阪市中央区の繁華街である通称ミナミを流れる川の略称。
阪神タイガースの優勝やサッカー日本代表がW杯で勝ったとき、
年末年始のカウントダウンなどのイベント時に、
グリコの看板がある戎橋から道頓堀川に飛び込むことがある。
実際には私は飛び込んでいません。