0

"ö"、"ä" などの特殊文字を含む名前を mySQL テーブルに挿入すると、エンコードの問題が発生します。たとえば、"Öl" という単語は "öl" になります。

名前をテキスト ファイルに書き込もうとしたところ、正しく表示されました。

SQLステートメントを使用してphpMyAdminに名前を挿入しようとしましたが、それもうまく機能します。

mysql_query('SET NAMES utf8;');これで、挿入クエリの前に設定することで解決策が見つかりました。これはどのように行われるべきですか、それともより良い方法はありますか?

4

1 に答える 1

1

ええ、SETNAMESutf8を実行しています。データの送信中にクライアント接続がut8を使用していることをMySQLに知らせるために必要です。ただし、これでPDO接続内で定義できます(MySQLへの接続にPDOを使用している場合)。

5.3.6より前のバージョンのPHPを実行している場合は、次のコードを使用できます。

$pdo = new PDO(
'mysql:host=mysql.example.com;dbname=example_db',
"username",
"password",
array(PDO::MYSQL\_ATTR\_INIT\_COMMAND => "SET NAMES utf8"));

それ以外の場合は、次を使用します。

$pdo = new PDO("mysql:host=localhost;dbname=world;charset=utf8", 'my_user', 'my_pass');
于 2012-07-01T19:01:01.307 に答える