一部の UTF-8 テキストがデータベース テーブルに正しく保存されない理由の説明を期待しています...
HTML フォームを作成しましたが、ページのメタ コンテンツは UTF-8 に設定されています。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
PHP とテンプレート ファイルはすべて Unicode/UTF-8 です。
utf8_unicode_ci
フォーム フィールド データは、エンコードされたデータベース テーブルに送信されます。
"éçä" (Unicode 文字セットに設定された Windows の Character Map プログラムから作成したもの) などの文字を含むフォームを送信すると、データベースに正しく表示されません ("éã§ã¤")。phpMyAdmin (これも UTF-8 文字エンコーディングに設定されています) を介してデータベースを表示しています。
ただし、データベースに挿入する前に、文字列に対して iconv() を実行して ISO-8859-1 に変換すると、文字が正しく表示されます。
$input = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $input);
何が起こっている?すべてが最初から最後まで UTF-8/Unicode であるという事実が、DB で正しいという結果になるのではないでしょうか? データを ISO-8859-1 に変換できたのはなぜですか?
データに対して行われる他の唯一のことは、FILTER_SANITIZE_MAGIC_QUOTES です。
$input = filter_var($input,FILTER_SANITIZE_MAGIC_QUOTES);
お時間をいただきありがとうございます。