4

私はよく知っていますが、ここで問題を解決するのは非常に困難です。はい、フォーラムで検索していましたが、それらのスレッドは十分に古いため、新しい投稿を作成することにしました。そこで、WP を使用して Web サイトを構築し、1 ページに html FORM を含めました。ユーザーが (自分の言語で) フォームに入力すると、フィールドの値が MySQL データベース テーブル reg_form に入ります。

すべてが機能し、値は保存されますが、一部の文字 (その言語に固有) は認識されません。これを解決するためにさまざまな方法を試しましたが、何も役に立ちません。

最も奇妙なことは、WordPress テーブルを見ると、これらの特定の文字が認識可能であることがわかりますが、作成した reg_form テーブルにはありません。

私はこの問題を解決しようとしていましたが、最終的にはばかげた方法でアプローチすることにしました。新しいデータベース、新しいテーブル、新しいワードプレスのインストール、新しいフォームの作成などを作成しました。

それが私がやっていたことです:

最初にこの提案を使用しました: http://tympanus.net/codrops/2009/08/31/solving-php-mysql-utf-8-issues/

はい、ファイルは UTF8 エンコーディング (BOM なし) を使用して保存されます。はい、メタタグは問題ありません。はい、FORM は accept-charset='UTF-8' を使用します。はい、データベース内のすべてのテーブルは UTF8 を使用します。はい、サーバー、データベース、テーブルの照合は同じ「utf8_general_ci」です。

次に、コードにこれを挿入しようとしました:

$conn = mysql_connect($server, $username, $password);

mysql_set_charset("UTF8", $conn);

次に、この提案リンクを試しました: akrabat.com/php/utf8-php-and-mysql/

次に、このリンクを使用して .htaccess ファイルに Apache の AddDefaultCharset を設定しようとしました: httpd.apache.org/docs/2.0/mod/core.html#AddDefaultCharset

しかし… まだ問題は残っています。私はそれらの特定の文字を正しく見ることができません – 奇妙な象形文字だけです.

4

2 に答える 2

1

あなたが直面している問題は、データベースの文字エンコーディング設定とWordpressの少し具体的な詳細に関係しています.

Wordpress には、通常はデータベース テーブルも処理する一般的な文字エンコード設定がありますが、それらのテーブルが含まれるデータベースのデフォルトの文字エンコード設定は気にしません。

したがって、プラグイン/コードが独自のデータベース テーブルを追加する場合は、エンコーディング設定にも注意する必要があります。デフォルトでは、テーブルを作成するデータベースのデフォルトになるためです。あなたの言語でうまく機能します。

データベースのデフォルトの文字セットを設定するには (データベース名が異なる場合は「wpdb」をデータベース名に置き換えます):

ALTER DATABASE wpdb CHARACTER SET utf8 COLLATE utf8_general_ci;

既存のテーブル *"reg_form"* の文字セットを変更するには:

ALTER TABLE reg_form CONVERT TO CHARACTER SET charset_name;

注:最初にデータベースをバックアップしてください。

于 2013-04-10T12:56:43.600 に答える
1

ホリー・シット!! 最後に!: )))))))))

問題は、mysqli_ クエリを使用していたことです。今、私は mysql_ (変更に注意してください!) クエリに変更しようとしましたが、うまくいきました!! 2 週間の懸命な作業と研究… ふぅ!

さて、誰がこの現象の理由を私に適切に説明できますか? : ))

于 2013-04-11T21:21:22.683 に答える