- 締切済み
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'); ~ とかやってみたのですがうまくいきません。 どなたかよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- 662bpm
- ベストアンサー率50% (1/2)
参考URLにありますが、もしCSVの読み込みにfgetcsvを利用している場合は、変な文字化けをしてしまう可能性が高いです。 条件的には、参考URLと似ている気がするので、もしかしたら参考URLの対処でいけるのではないかと思います。
- ttschool
- ベストアンサー率28% (18/64)
MySQLの設定は、変えていますか? 変えていないなら、文字化けが出て当然です。
- twin_shu
- ベストアンサー率100% (10/10)
すいません。休日は出かけてて反応が遅れました(^-^; PHPソースをwindowsで普通に記述してるとなると、おそらくS-JISでしょう。 となると、PHPがS-JISでDBがUTF-8となって、言語が合ってないのが原因の可能性も考えられます。 場合にもよりますが、基本的にはPHPの文字コードとDBの文字コードは、同じものにするべきです。 なので、PHPのソースが何の文字コードなのか、秀丸等で調べてみてください。
- twin_shu
- ベストアンサー率100% (10/10)
それを見る限りでは合ってる気がしますが・・・ 一応確認しますが、 ・CSVファイルの文字コードは何になっていますか? ・MySQLの文字セットは「utf8_general_ci」? ・PHPソースはUTF-8で記述していますか? この辺の情報をお願いします。
補足
・CSVファイルの文字コードは何になっていますか? >SJISです。 ・MySQLの文字セットは「utf8_general_ci」? >なってます ・PHPソースはUTF-8で記述していますか? >すいません、PHP詳しくないので よくわかりません。 windowsでソースは記述してます。
補足
アドバイスありがとうございました。 秀丸でエンコードをUTF-8に変更して アップ後、実行したのですが、同じでした。 日本語を使用しない場合は普通に動作はしている ようなのですが。 (EUC-JPでは問題なく動作 していたソースなんですけど・・) もうすこし調べてみます。