5

データベースにアクセント付き文字を使用/保存する Web サイトに取り組んでいます。config.php charset 変数が設定と一致するようにページ テンプレートを設定しました。

<meta charset="<?php echo $this->config->item('charset');?>">

私が抱えている問題は、 がUTF-8$config['charset']に設定されている場合、フォームの検証が失敗し、アクセント付きの文字が含まれていると文字が送信されなかったかのようになることです。したがって、たとえば、á が文字列のどこかに含まれている場合、必須フィールドは跳ね返されます。á を引いた文字列は正常に機能します。

$config['charset']ISO-8859-1utf8_encode()に変更し、挿入する前にテキストを UTF-8 に変換することで、これを機能させることができましたutf8_decode()。これは最善の方法ですか、それともアクセント付き文字を使用して CodeIgniter で動作する UTF-8 を取得するために必要なものが不足していますか?

アドバイスをいただければ幸いです。

4

1 に答える 1

12

どこでも UTF-8 を使用していること、および PHP と MySQL の両方が UTF-8 を処理するように構成されていることを確認する必要があります。

HTML で、メタタグを追加します。

<meta charset="utf-8" />

そして、UTF-8 形式で保存します。notepad++ でそれを行う方法は次のとおりです。

UTF-8 をサポートするように MySQL テーブルを定義し、次を使用してテーブルを作成します。

DEFAULT CHARSET=utf8;

そして、接続を次のように設定します。

mysql_set_charset('utf8', $con);

でUTF-8を有効にしphp.iniます。

default_charset = "utf-8"

完全な手動チェックの場合Web アプリでの Unicode Front To Back の処理

于 2012-08-28T11:22:46.187 に答える