2012-05-04 4 views
1

問題:キリル文字、UTF-8でエンコードされた文字列、たとえば "Михаил"、HTML形式で指定され、PHPによってMYSQLに保存され、 "РњРёС ...айлович "。HTMLフォームデータ> PHP> MySQL UTFエンコード(キリル文字)

これは今や新しい問題ですが、これまでのところ解決策が見つかりませんでした...誰かがこれに遭遇した場合は助けてください。

HTMLページはUTF-8でエンコードされ、METAが正しく設定されています。 PHPスクリプトの保存は、UTF-8でエンコードされています(BOMの有無は関係ありません)。 MySLテーブルにはデフォルトのエンコードがありますutf-8:

CREATE TABLE `cms_deposit_request` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `name` varchar(255) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

すべての入力歓迎!ありがとう!

答えて

1

そのような機能がない場合は、右のデータベース

に接続した後、

SET NAMES utf8 

を実行して、必ず

mysql_set_charset('utf8');` 

機能(または使用しているAPIから同様の機能)を呼び出します同じ場所のSQLクエリ

+0

完璧に助けられました!なぜ以前にはうまくいかなかったのでしょうか?データベースのグローバル設定?この関数を呼び出さずに別のアプリケーション/ dbサーバーで正常に動作しました。ありがとう! –

+0

実際にデータベースとHTMLページに同じ文字セットを持つ必要はありません。mysqlはその場でデータを再コード化できます。そのため、返されるデータが必要なエンコーディングを指定する必要があります。これはデフォルトでlatin1なので、接続後は常に変更する必要があります。ここに、問題を説明する記事(ロシア語)へのリンクがあります。http://phpfaq.ru/charset –

関連する問題