質問: 下記のてけんですが、一つ検証してわかったことかあります。 csvの中に、ローマ数字が使用されており、macで表示される際に、(監)と変換されており これがmysqlに取り込まれた際にそれから複数行がスキップされております。 そうも機種依存の文字化けと呼ばれるみたいですが、これを解消(mysql)へ取り込める方法 はありますでしょうか。CSV側では複数の種類のこのような機種依存の文字が使われているため 毎回、置換するのは現実的ではない状況です。 よろしくお願い申し上げます。 まだまだ初心者で申し訳ございませんが、質問をさせてください。 表題の通り、csvファイルをデータベースに取り込むべくインポートをphpmyadminから行っております。 phpmyadmin > インポート >ファイル文字セット(UTF-8)>エンコーディング(SJIS)>実行 の手順です。ファイルセット文字やエンコーディングの組み合わせもいろいろ試してみております。 csvファイルはレコードが7000行、カラムが10列程度です。 1このように実行した結果、エラーなく取り込まれた表示がされ、文字化けも解消しているのですが、明らかに欠けているレコードが存在いたします。すなわちエラーがないのにインポートが漏れております。レコード600行程度が欠落しておりました。これらのレコードを見る限り、セルに空欄や余計なカンマ等取り込む際に問題となるようなものは検出されませんでした。 21の中で漏れているレコードを別のcsvに抜き出し単体で、同じ条件でインポートを行ったところ、インポートすることができました。 3文字化けを問題とせずに取り込んだ場合、特に漏れなくレコードが取り込まれていることが確認できました。 抽象的で申し訳ございませんが、上記のような状況でどこに問題があるのかに困惑しております。どなたか同じ経験等で解決方法もしくは問題点等がわかる方、ご教示をいただけませんでしょうか。直接csvデータをお見せしたいのですが、お見せできず抽象的な形での質問となり申し訳ございません。追加の必要な情報があれば速やかにコメントさせていただきます。 よろしくお願い申し上げます。
回答: 基本的にUTF8ですべて処理すればよいかも とくに環境依存文字は波ダッシュとか根深く カッコ株とかローマ字、丸数字など一部変換がうまくいかないものもあります またSJISが絡むと、5C問題などで引っかかる場合もあります