2012-07-13 8 views
9

私はmysqliとすべてについてもっと学ぶ道ですそのエキサイティングなものが、私はすぐにブロックされます。mysqlは '文字セットutf-8(パス:/ usr/share/mysql/charsets /)'を初期化できませんでした。そこにutf8.xmlファイルはありません

私は自分のdebianボックスにローカルサーバーを持っています。それは最新のもので、PHPとMySQLがインストールされ、円滑に動作しています。 私はmysqliのにもう少し学ぶために探していたと私は次のコードを試みた:

<?php 

$db = new mysqli('localhost', 'userdb', 'pwuserdb', 'db'); 

if(!$db->set_charset('utf-8')) { 
    printf("Error setting the character set utf-8: %s\n", $db->error); 
} else { 
    printf("Current character set is: %s\n", $db->character_set_name()); 
} 

print_r($db->get_charset()); 

?> 

をページを訪問したときに、私は、次のメッセージを取得し、私の驚きに、だった: Error setting the character set utf-8: Can't initialize character set utf-8 (path: /usr/share/mysql/charsets/) stdClass Object ([charset] => latin1 [collation] => latin1_swedish_ci [dir] => [min_length] => 1 [max_length] => 1 [number] => 8 [state] => 801 [comment] => cp1252 West European)

私は

[mysqld]

について:私は、my.cnfファイルで以下の設定を完了したので、私は、MySQLの標準文字コードとしてUTF-8に設定していないとして、それが論理的であることを自分自身に考えました [client]

default-character-set=utf8 

ため

私は、コマンドラインからのmysqlにログインして、私はまた、コマンドラインからmysqlのと同様に、Apacheを再読み込み ALTER DATABASE db CHARSET=utf8;

を走りました。物事は、MySQLで起こっているか見てみると は、ほとんどすべてが大丈夫になります。しかし、原因、UTF8ファイルを見つけることができませんmysqlのように思えるという事実のために、私は/usr/share/mysql/charsets/フォルダにutf8.xmlファイルをチェック

mysql> SHOW VARIABLES LIKE 'character_set%'; 
+--------------------------+----------------------------+ 
| Variable_name   | Value      | 
+--------------------------+----------------------------+ 
| character_set_client  | utf8      | 
| character_set_connection | utf8      | 
| character_set_database | utf8      | 
| character_set_filesystem | binary      | 
| character_set_results | utf8      | 
| character_set_server  | utf8      | 
| character_set_system  | utf8      | 
| character_sets_dir  | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+ 
8 rows in set (0.00 sec) 

と1つではありません。 Index.xmlこのディレクトリのファイルには、文字セットのリストにutf8の記述がありますが、問題はxmlファイルがディレクトリに存在しないという事実から来ていると思います。

私のシステムのロケールはすべてUTF8(enとpl)であり、utf8.xmlファイルがディレクトリにない理由を理解できません。このディレクトリまたはそのコンテンツまったく。

どんなアイデア/アドバイス/推薦をも歓迎します。

ありがとうございます!

乾杯!

答えて

18

あなたはダッシュなし

if(!$db->set_charset('utf8')) { 

を試してみたのですか?

あなたのシステム上のあなたの研究がutf-8の代わりにutf8を指しているので、

+0

それはそれでした! Thanykあなたは非常に! –

関連する問題