[PHP-users 5102] Re: メールのSubject 文字化け

Shigeki Mimura php-users@php.gr.jp
Wed, 30 Jan 2002 13:47:45 +0900 (JST)


三村です。

shibata> 前にEUCかたSJISへの変換などの変換機能をINCLUDE
shibata> してつかったことはありますがそもそも
shibata> もともとのSUBJECTの文字コードはなにになているのでしょうか?
shibata> これを無理やり変換できますでしょうか?
shibata> 
shibata> もしなにかご存知でしたらどうかよろしくお願い
shibata> いたします

何でって言っても、困っちゃうかも知れないです。
メーラによっては生JISで入ってたりするものもありますからね。
で、通常どういう形になっているかと言うと

サブジェクト

という文字列は

=?ISO-2022-JP?B?PxskQjVjGyhCPz8/GyRCOGMbKEI/GyRCJ2MbKEI/Pz8/?=

というような感じにbase64でencodeされてます。
それで最初の=?の後のISO-2022-JPの部分がencodingを表してます。
なので、この形式の場合、?と?の間をとってきてbase64でdecodeすれば良いことになります。
送信する時はこの逆で、iso-2022-jpで書かれた文字列をbase64でencodeして頭に
=?ISO-2022-JP?を最後に?をつけてやれば文字化けしないサブジェクト部分が生成できるはずです。