-1

utf8_unicode_ci 文字列を含むデータベースがあります。いくつかの例は、「Zìzhìqū」と「Shěng」です。

このコードを実行すると:

    $result = mysql_query ("SELECT foo FROM bar");

$rows = Array ();

while ($row = mysql_fetch_row ($result))
    array_push ($rows, $row [0]);

mysql_free_result ($result);

配列には、$rows予想される場所に "Zìzhìqū" が含まれていますが、"Shěng" が "Sh?ng" になっています。文字列をファイルに書き込むと、不正な疑問符が通常の ASCII 0x3f であることがわかります。

なんてこと?

PHP 5.3.10-1ubuntu3.4 と mysql Ver 14.14 Distrib 5.5.24 を使用しています。これの原因は何ですか?

4

3 に答える 3

0

http://cameronyule.com/2008/07/configuring-mysql-to-use-utf-8/

于 2012-10-07T17:14:44.037 に答える
0

PHP と MySQL 間の接続の文字エンコーディングを UTF-8 に設定しましたか? そうしないと?、UTF-8 文字の代わりに置換されます。

SET NAMES 'utf8'
于 2012-10-07T17:15:33.147 に答える
0

pls はあなたのデータベースを維持しDEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci

それから

header("Content-type: text/html; charset=utf-8");
//mysql connection
mysql_query("SET NAMES utf8");
于 2012-10-07T17:25:05.257 に答える