過去数時間、解決策を見つけようとしてきましたが、できませんでした。インターネットとこのフォーラムで可能なすべての解決策を試しましたが、何も機能していないようです. ここに問題があります。
ユーザーがフォームのテキストエリアに入力または貼り付けるアラビア語データをmysqlデータベースに保存したいと考えています。ウェブサイトはアラビア語で、フォームにはこの 1 つのテキストエリアしか含まれていません。
重要なポイント:
Web サイトは静的なアラビア語コンテンツを正しく表示しています。Web サイト全体で utf8 文字セットが使用されています。だから、それは問題ではありません。
テーブル (home) とコンテンツ フィールド (content) は両方とも utf8_unicode_ci 照合に設定されているため、どちらも問題ありません。
Form は accept-charset='utf-8' に設定されているので、それも問題ありません。
テーブルにphpMyAdminを使用してアラビア語のテキストを挿入すると、まったく問題はありません。
実際、テーブル内のアラビア語テキスト (phpMyAdmin を介して入力) が Web サイトで取得されると、完全に表示されます。
しかし、アラビア語のデータがテキスト領域に入力され、データベースに送信されて挿入クエリデータを使用して保存されるとすぐに、???? に変換されます。
私は使っている
mysql_query("SET NAMES 'utf8'");
mysql_query('SET CHARACTER SET utf8');
接続後なので全く問題ありません。先ほど言ったように、データは問題なく取得されます。2枚の画像をアップしました。私の問題を示しています。
私は本当にここで立ち往生しており、ご覧のとおり、これを解決するために可能なすべての手順を実行しましたが、この動作は本当に奇妙です. 助けてください。
データをdbに挿入するために使用しているコードは次のとおりです。
$content=$_POST["content"];
echo $content;
$sql="update home set content='$content'";
$result=mysql_query($sql) or die(mysql_error());
2 番目の echo ステートメントを確認できます。問題をデバッグするために追加しました。このエコーでは、データが完全に表示されます。問題は、私が推測するクエリで発生します。