Index: /branches/version-2_4-dev/data/class/SC_Initial.php
===================================================================
--- /branches/version-2_4-dev/data/class/SC_Initial.php	(revision 18431)
+++ /branches/version-2_4-dev/data/class/SC_Initial.php	(revision 18503)
@@ -56,4 +56,5 @@
         $this->defineConstants();
         $this->mbstringInit();
+        $this->checkConvertEncodingAll();
         $this->createCacheDir();
     }
@@ -124,4 +125,47 @@
 
     /**
+     * 文字エンコーディングをチェックし, CHAR_CODE に変換する.
+     *
+     * $_GET, $_POST, $_REQUEST の文字エンコーディングをチェックし, CHAR_CODE と
+     * 一致しない場合は, CHAR_CODE へ変換する.
+     *
+     * @access protected
+     * @return void
+     * @see $this->checkConvertEncoding()
+     */
+    function checkConvertEncodingAll() {
+        $_GET = $this->checkConvertEncoding($_GET);
+        $_POST = $this->checkConvertEncoding($_POST);
+        $_REQUEST = $this->checkConvertEncoding($_REQUEST);
+    }
+
+    /**
+     * 配列の要素の文字エンコーディングをチェックし, CHAR_CODE に変換して返す.
+     *
+     * 引数の配列の要素の文字エンコーディングをチェックし, CHAR_CODE と一致しない
+     * 場合は, CHAR_CODE へ変換して返す.
+     *
+     * 文字エンコーディングの判別は, mb_detect_encoding に依存します.
+     *
+     * @access private
+     * @param array $arrMethod チェック対象の配列
+     * @return array 変換後の配列
+     * @see mb_detect_encoding()
+     * @see mb_convert_encoding()
+     */
+    function checkConvertEncoding($arrMethod) {
+        $arrResult = array();
+        foreach ($arrMethod as $key => $val) {
+            $encoding = mb_detect_encoding($val);
+            if (CHAR_CODE != $encoding) {
+                $arrResult[$key] = mb_convert_encoding($val, CHAR_CODE, $encoding);
+            } else {
+                $arrResult[$key] = $val;
+            }
+        }
+        return $arrResult;
+    }
+
+    /**
      * 定数を設定する.
      *
