[Codeigniter-users] CodeIgniterでのPOST値の日本語受け取りの文字化けについて。

Back to archive index

Kenji Suzuki kenji****@gmail*****
2011年 5月 13日 (金) 20:40:37 JST


Kenji です。


On Fri, 13 May 2011 11:59:53 +0900
オーシャンダニエル <ocean****@gmail*****> wrote:

> 皆様はじめまして、Oceanと申します。
> 
> このたびCodeIgniterを使い始め、素晴らしいフレームワークだなと感じています。
> CIに慣れてきた矢先、formでinputしたtextが受け取り側のファイルで文字化けしてしまうという事態になってしまいました。受け取り側が素のphpファイルであれば問題なく受け取れるのですが、CodeIgniterのcontrollerの中のファイルとして設置してしまうと、なぜか文字化けます。

たぶんないと思いますが、もし、システム全体を Shift_JIS で統一したい場合は、
config.php の

$config['charset']

を UTF-8 から変更して、その設定値を使っているすべての部分を検討して必要に
応じて修正してください。この値、mbstring で使う場合は SJIS (or SJIS-win)
ですが、HTML で使う場合は Shift_JIS なので、そのままではうまくいかない
ですね。状況に応じて値を動的に変えるしかないように思います。

それから、SJIS を使うことは UTF-8 と比較してセキュリティリスクが大きくなり
ますので、脆弱性への対処もきっちりと入れるようにお願いします。


// Kenji


> mb_convert_variables等も試してみたのですが、うまく変換することが出来ませんでした。
> 携帯サイト用のため、ファイルの文字コードはどちらもSJISで作成しています。
> 
> 以下、該当コードを添付します。
> 
> 
> 送信側(controllers/input.php)---------------------------
> 
> <?php
> class Input extends CI_Controller {
> 
> public function index()
> {
> echo '<form action="output.phpへのパス" method="POST"
> accept-charset="shift_jis">';
> echo '<input type="text" name="name" value =""><br />';
> echo '<input name="submit" value="送信" type="submit"><br />';
> echo '</form>';
> }
> 
> }
> ?>
> 
> 受信側(controllers/output.php)---------------------------
> 
> <?php
> class Output extends CI_Controller {
> 
> public function index()
> {
> print_r($this->input->post());
> }
> 
> }
> ?>
> 
> ※結果は
> Array ( [name] => トとて [submit] => M )
> のような感じに文字化けます。
> Array ( [name] => てすとてすと [submit] => 送信 )となるはずなのですが。。
> 
> どなたかアドバイスの可能な方、何卒宜しくお願い致します。
> 
> Ocean
> _______________________________________________
> Codeigniter-users mailing list
> Codei****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users




Codeigniter-users メーリングリストの案内
Back to archive index