文字コード変換
CMS Ver. 3.0.24で ISO-2022-JP 文字コードを廃止したため、UTF-8 のみとなりました。詳しくは Ver. 3.0.24 フィックスバージョンリリースのお知らせ をご覧ください。
フォームのメール送信で、文字コードにISO-2022-JPなどを指定すると、表現できる文字数がUTF-8などに比べると少ないため、表示できない文字ができてます。
そこで、送信時にUTF-8からISO-2022-JPなどに変換するときに、存在しない文字を別の文字に置き換える仕組みを利用して、文字化けする文字を少なくしましょう。
設定ファイル
以下の命名規則をもつファイルを作成します。
/private/const/mail/[小文字の文字コード名].php
ISO-2022-JPの場合は、デフォルトで用意されています。
<?php // UTF-8 → ISO-2022-JP $const = array( /* --- 0x2100 - 0x2138 (文字種記号) --- */ // 0x2100 - 0x210F "\xE2\x80\xA2" => "・", "\xE2\x84\x80" => "a/c", "\xE2\x84\x81" => "a/s", ...
変換例
例えば、UTF-8の㈱はISO-2022-JPで文字化けします。以下のような変換テーブルを書くと㈱を(株)のように3文字を使ったものに変換するので、文字化けを防ぐ事ができます。
... "\xE3\x88\xB1" => "(株)", ...