0

列(テーブルと同じ文字セットと照合)を持つテーブルUsers(UTF8文字セットとutf8_general_ci照合)があります。lastName私の名前 (Štěrba) をこのテーブルと列にNavicat for MySQLから直接挿入すると、Navicat では正しく表示されますが、ブラウザではうまく表示されません (出力ドキュメントは UTF8 で、mysql_connect()も使用した後SET CHARACTER SET utf8):

Navicat では正しく、ブラウザでは間違って

しかし、このクエリを使用して PHP からこの挿入を行うと、次のようになります。

INSERT INTO users (firstName, lastName) values ('Pavel', 'Štěrba');

ブラウザでは正しく表示されますが、Navicat では次のように保存されます。

Navicat では間違っているが、ブラウザでは正しく

明らかに、私はそれを壊してしまうので、navicat から直接編集することはできません...なぜこれが起こるのか分かりますか? どこかでエンコードを見逃しましたか?それともNavicatの問題ですか?ヒントをありがとう!

4

2 に答える 2

1

誰もが使用するツールではなく、あなたが間違っている可能性が高いです。

クエリでエンコーディング設定をいじらないでください! mysql_set_charset()を使用します。

PHP 経由で取得したデータベース内のすべてのエントリを修復する必要があります。

「SET CHARACTER SET」は正しいように聞こえますが、間違っていることに注意してください。上記の PHP 関数を使用できない場合は、「SET NAMES utf8」のみを使用するだけです。

于 2013-08-10T23:21:35.057 に答える
0

SET NAMES utf8後にも使用SET CHARACTER SET utf8

この助けを願っています

于 2013-08-10T22:09:10.283 に答える