• 締切済み

MySQLでの文字化けについて

すいません、教えてください。 PHP(PHP-5.2.4)でCSVファイル を読み込んでMySQL(4.1.22)に INSERTしているのですが文字化けします。 SJIS→utf8_general_ciです。 いろいろ調べて ~ $wk[$i] =mb_convert_encoding($csvfile[$i],'UTF-8','SJIS-win'); ~ とかやってみたのですがうまくいきません。 どなたかよろしくお願いします。

みんなの回答

  • 662bpm
  • ベストアンサー率50% (1/2)
回答No.4

参考URLにありますが、もしCSVの読み込みにfgetcsvを利用している場合は、変な文字化けをしてしまう可能性が高いです。 条件的には、参考URLと似ている気がするので、もしかしたら参考URLの対処でいけるのではないかと思います。

参考URL:
http://blog.plastik.jp/archives/6
  • ttschool
  • ベストアンサー率28% (18/64)
回答No.3

MySQLの設定は、変えていますか? 変えていないなら、文字化けが出て当然です。

  • twin_shu
  • ベストアンサー率100% (10/10)
回答No.2

すいません。休日は出かけてて反応が遅れました(^-^; PHPソースをwindowsで普通に記述してるとなると、おそらくS-JISでしょう。 となると、PHPがS-JISでDBがUTF-8となって、言語が合ってないのが原因の可能性も考えられます。 場合にもよりますが、基本的にはPHPの文字コードとDBの文字コードは、同じものにするべきです。 なので、PHPのソースが何の文字コードなのか、秀丸等で調べてみてください。

sh0707
質問者

補足

アドバイスありがとうございました。 秀丸でエンコードをUTF-8に変更して アップ後、実行したのですが、同じでした。 日本語を使用しない場合は普通に動作はしている ようなのですが。 (EUC-JPでは問題なく動作 していたソースなんですけど・・) もうすこし調べてみます。

  • twin_shu
  • ベストアンサー率100% (10/10)
回答No.1

それを見る限りでは合ってる気がしますが・・・ 一応確認しますが、 ・CSVファイルの文字コードは何になっていますか? ・MySQLの文字セットは「utf8_general_ci」? ・PHPソースはUTF-8で記述していますか? この辺の情報をお願いします。

sh0707
質問者

補足

・CSVファイルの文字コードは何になっていますか? >SJISです。 ・MySQLの文字セットは「utf8_general_ci」? >なってます ・PHPソースはUTF-8で記述していますか? >すいません、PHP詳しくないので よくわかりません。 windowsでソースは記述してます。