0

Linuxサーバーで実行されているMySQLデータベースに保存されているサンプル文字列は次のとおりです。™</p>

これは、、またはで表される単一のTM0x2122文字UTF-16BEです0xE284A2UTF-8

データベーステーブルはでエンコードされutf8-unicode-ciます。私は別のLinuxサーバーでPHPを実行しています。これは、UTF-8と同じ文字エンコードを使用するの内部エンコード(によって報告されるmb_internal_encoding)を使用します。ISO-8859-1

SQLクエリを実行して文字列を取得すると、が返されます0x0099。これは、での表現ですWindows-1252

それはどのように起こり、より賢明なコードページに戻るように修正するにはどうすればよいですか?

4

1 に答える 1

0

観察される動作は、デフォルトのMySQLクライアント文字セットによるものです。

デフォルトをオーバーライドして、クライアント接続に使用される文字セットを指定できます。mysqliを使用している場合は、次のようにします。

$mysqli->set_charset('utf8');

見る:

http://php.net/manual/en/mysqlinfo.concepts.charset.php

http://dev.mysql.com/doc/refman/5.5/en/charset-connection.html

于 2013-01-10T23:03:04.903 に答える