このエントリーをはてなブックマークに追加

更新日: 2016年2月25日

実行時間: 0.0291

CI_Utf8

 CodeIgniterで文字コードを「UTF-8」としてWebアプリケーションを開発・運用するには、 PHPの「mbstring」モジュールが有効で、予め適切な設定がされている必要があります。
 この章では「mbstring」モジュールが有効で適切な設定がされていることを前提に説明していきます。

 CodeIgniterで「UTF-8」を利用するように設定すると、クライアントから送信されるデータを ユーザが開発するコントローラに渡る前にUTF-8としてサニタイズされます。
 CI_Utf8の主な機能は入力データのサニタイズです。これはバックグラウンドで動作するため 普段、ユーザはあまり意識する必要は無いでしょう。

 しかし、入力データのサニタイズの影響で、Webアプリケーションを「UTF-8」で開発し、 HTML側が「ShiftJIS」のような場合、POSTデータが文字化けしてしまいます。
できれば、HTML側も「UTF-8」で運用することが良いのですが、何らかの理由でHTML側の文字コードが「UTF-8」以外の場合、 フック機能の「pre_system」フックポジションで、POSTデータを「UTF-8」に変換する処理が必要になってきます。

CodeIgniterの「charset」設定

CodeIgniterのシステム設定ファイル「config.php」で文字コード「UTF-8」を利用する設定をします。

  • application/config/config.php
  • $config['charset'] = 'UTF-8';

CI_Utf8の提供する機能

CI_Utf8クラスが提供する機能について説明します。

safe_ascii_for_xml($string)

    復帰改行、タブ、バックスペースなどのいわゆるASCII制御文字を$stringから取り除きます。

convert_to_utf8($string, $encoding)

    「$encodeing」文字コードの文字列「$string」を「UTF-8」に変換します。