CSVファイルのデータが、データベース上で文字化け
CSVファイルのデータが、データベース上で文字化けする現象を解決したい!
CSVファイルは、任意の場所にFTPソフトを使用してアップロードし、プログラム上でCSVを読み込むという手順です。
■開発関係情報
phpは使用しておらず開発はperlを使用
開発プログラムの文字コードはEUC-JPで、出力されるHTMLの文字コードはShift-JISです。
(1)hetemlに設置した場合は正常に動作しました。
予め作成されていたデータベースのエクスポートファイルをインポートしてテーブルを作成しましたがインポート時のファイルの文字セットは「utf8」で、コーディングへの変換は「non」で実行しています。
MySQLバージョン:5.0.82
MySQLの文字セット:UTF-8 Unicode(utf8)
MySQLの接続照合順序:utf8_unocode_ci
phpMyAdmin - 2.11.11.3
MySQL クライアントのバージョン: 4.0.25
(2)無料のレンタルサーバー(国外)に設置すると文字化けします。
(1)と同じ手順で行うと、データベース上でCSVデータの日本語が文字化けします。
MySQLバージョン:5.1.65-cll
MySQLの文字セット:UTF-8 Unicode(utf8)
MySQLの接続照合順序:utf8_unocode_ci
phpMyAdmin - 3.4.11.1
MySQL クライアントのバージョン: 4.1.22
そこでCSVをFTPでアップせずデータベースでインポート(ファイルの文字セット:utf-8、エンコーディングの変換なし)しようとすると「CSV入力のカラム数が不正です」というエラーになります。
色々と調べていると、文字コードをすべてEUCに統一すると文字化け解決と書いてあったので、CSVファイル・MySQLの接続照合順序・インポートするときの文字セットなどの思い当るところ全てをEUCに指定して、エンコーディングへの変換を「EUC」に「全角カナへ変換する」にチェックを入れて実行してみても、やはり「CSV入力のカラム数が不正です」エラーになります。
この時、フォーマット項目で「LOAD DATA文を使用したCSVの読み込み」を選択し、特有のオプションで「カラムの終端記号」を「,」「カラム囲み記号」を「"」に設定して、CSVファイルでは区切りを「,」と「","」の2パターンで試しても同じエラーでした。
また、気になる点としては、MySQLの文字セットはUTF-8のままでどうやって変更するのかがわかりません。
開発にphpは使用していなくても、phpmyadminを使用しているということはphp.iniの設定が必要ですよね?
php.iniの設定は、権限が与えられていなければサーバー側で設定を行ってもらう必要があるのでしょうか?(初歩的な事ですみません)
試行錯誤していますが、解決法が分からず困っています。
どなたかご教示いただけませんでしょうか。
何卒よろしくお願い致します。
お礼
回答ありがとうございます。 EXCELからCSVをエクスポートしています。 一度TeraPadや秀丸などで開いて保存し直したほうが良いのでしょうか?