Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

mysql文字化けについて

どうしても自己解決できません。宜しくお願いします。 sqliteで色々できるようになり、いざmysqlに移行と思いデータを mysqlに移そうとしています。ところが日本語がデータベース内で文字化けしています。 sqliteでは文字コードを変えると大丈夫だったのですが。 $simei=mb_convert_encoding($_POST[simei],"EUC-JP","SJIS"); musqlには「照合順序」というのがあり、よく意味が分からないのですがこれが文字コードを設定するところと思い、そこで「ujis_japanese_ci」と言うのに設定してみたり、sjisにしてみたり色々試したのですがやはりデータベース内では文字化けしています。 どのようにすればデータベース内に保存された日本語文字が文字化けしないで保存されるのでしょうか。宜しくご指導お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

setnames sjis のクエリーを発行してから、データの移行をしてもDB内で文字化けするでしょうか?

ityounomi
質問者

お礼

ありがとうございます。試してみました。 mysql_query("setnames sjis"); でも・・・、データベースのテーブル表示は「????」のままでした。 mysqlAdminというので確認してみますと、sjis_japanese_ci というのと、sjis_binというのがあります。どちらもダメでした。 他のエンコードも色々試したのですが、それらしきものは皆ダメでした。 参りました・・・・。もうかれこれ、10時間以上も調べていますが 全く解決できそうにありません。 こんなにてこずるとは思っていもいませんでした。 アルファベット入力なら問題ないのですが・・・。 日本語はmysql admin でテーブルを確認すると、文字化けです。 無料のレンタルサーバーということで、設定はできないのかなとも思ってしまいます。無料レンタルサーバーでmysqlを使っている人は沢山いると思いますが、みなさんデータベースに日本語データを登録するときどうやっているのでしょうね^^。初心者は、やはりちょっとしたところでつまずいてしまいます。

ityounomi
質問者

補足

解決しました~~~(^▽^)(^▽^)(^▽^) 死ぬほどうれしいです!! mysql_query("setnames sjis"); これでよかったです。 結局自分のミスでした。 プログラムというのは、ちょっとしたスペルミスでとんでもない程 時間を食ってしまうんですね。ミスに気付くのに12時間かかりました。ありがとうございました(^▽^)(^▽^)!!

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • usa920
  • ベストアンサー率50% (10/20)
回答No.1

PHPか何かでmysqlに接続しているのでしょうか? あまり的確なアドバイスはできませんが、mysqlはデータベースに保存する際の文字コードと、クライアントで表示する際の文字コードが分かれています。 ですので、例えばデータベースに設定した文字コードで正しく保存されていても、mysqlクライアントの文字コードが別の文字コードになっていると、データを表示した際に文字化けします。 mysqlクライアントから、status と入力すれば、データベースで利用されている文字コードとクライアントの表示用文字コードを確認することができますので、まずは問題の切り分けをしてみてはいかがでしょうか。

ityounomi
質問者

お礼

アドバイスありがとうございます。 PHPを使っています。なんとかPHPを使えるようになってきたので、無料でPHPとmysqlを使える無料レンタルサーバーでと思いトライしています。mysqlは自分のパソコンにインストールしているわけではないのですが、それでも確認できるのでしょうか。確認する場合は、どこに入力すればよいのでしょう。できましたら、もう少し詳しくご教授お願いいたします^^。

すると、全ての回答が全文表示されます。

関連するQ&A