MySQL5.5でデータをインポートすると、どうしても化けます。

テストデータだと、うまくいくのですが。

以下1から までは
http://test01.1811way.com/archives/54
を参照してください。

1.作成したテストデータ
うまく行ったのがtest01.csv
文字化けするのが、test03.csv

2.インポート時のphpMyAdminオペレーション

3.インストールとインストール後の設定

4.my.iniファイル
の順に上記サイトに書いてあります。

なお、インポートするテーブルの最初のフィールドは、
フィールド名:「id」、種別:「INT」、AUTO_INCREMENT式
です。

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/12/12 17:34:41
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:taroe No.3

回答回数1099ベストアンサー獲得回数132

ポイント66pt

今回のケースは、
DBには実は正常に登録されてるが
表示時に文字化けしてるだけとかではないでしょうか?

phpMyAdminにてUTF-8(Unicode)の日本語が文字化けして読めない不具合を解決
http://www.my-standard.co.jp/331.html

id:kohhi

my.cnfは見当たらず、my.iniは、この問題の初期に直しております。
できました。
ありがとうございました。
内容は下記にコメントで書いておきました。

2012/12/12 17:34:20

その他の回答2件)

id:pigmon88 No.1

回答回数501ベストアンサー獲得回数25

ポイント68pt

mysqlは日本語用にコンパイルしていないとどうしても化けますよ。
バイナリをデフォルトにするように再コンパイルしてください。

id:oil999 No.2

回答回数1728ベストアンサー獲得回数320

ポイント66pt


を除いてみてください。

id:kohhi

㈱は文字化けしたままですが外字はしょうがないかと思っております。
できました。ありがとうございました。
下記に内容コメントしておきました。

2012/12/12 17:31:47
id:taroe No.3

回答回数1099ベストアンサー獲得回数132ここでベストアンサー

ポイント66pt

今回のケースは、
DBには実は正常に登録されてるが
表示時に文字化けしてるだけとかではないでしょうか?

phpMyAdminにてUTF-8(Unicode)の日本語が文字化けして読めない不具合を解決
http://www.my-standard.co.jp/331.html

id:kohhi

my.cnfは見当たらず、my.iniは、この問題の初期に直しております。
できました。
ありがとうございました。
内容は下記にコメントで書いておきました。

2012/12/12 17:34:20
  • id:rouge_2008
    こちらでは問題が再現しません。
    どの部分が文字化けしているのでしょう?
    一部の文字だけですか?それとも特定のカラム全体が文字化けしているのですか?
    TEXTやVARCHARなど文字列のカラムの照合順序は正しく設定されていますか?
    あるいは数値以外の文字が含まれるカラムに、文字列以外のデータ型を指定するなどしていませんか?
    カラムの照合順序、データ型を「構造」タブで確認してみてください。

    ※MySQL4.1以降はUTF-8に対応していますので、サーバーのデフォルトの文字コードがUTF-8以外でも、適切に設定されたデータベース(※およびカラム)にきちんと作成されたアプリケーションで接続する場合は問題は発生しません。(※UTF-8だけでなく、SJIS、EUCの場合も大丈夫です。)
    http://dev.mysql.com/doc/refman/4.1/ja/charset-unicode.html

    phpMyAdminはきちんと作られたアプリケーションですので、my.iniで設定しなくてもUTF-8で接続されます。
  • id:kohhi
    rouge_2008さん、わざわざやってくれてありがとうございます。
    test03.csvから、少しずつフィールド減らして行ったり、
    もう一回じっくり考えます。
    取り急ぎ御礼まで。
  • id:kohhi
    少し進みました。

    データベースが違うと文字が化けたり化けなかったりするようです。
    全く同じ事を2つのデータベースでやってみました。

    1.データベース:
    test と print の2つ

    2.上記2つのどちらのデータベースにも以下SQL文でテーブルを作る
    CREATE TABLE IF NOT EXISTS `kigyouroku02` (
    `companyname` text NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=sjis;

    3.どちらのテーブルに対しても以下の(1フィールド&1件だけの)test06.csvを
    phpMyAdminからインポートする。

    test06.csv
    "アイワーチ"
    *データ1件だけです。

    4.phpMyAdminのインポート方法
    ファイルの文字セット:utf8
    LOAD DATA する CSV
    フィールド区切り文字,
    フィールド囲み文字:0
    フィールドのエスケープ記号:\
    行の終端記号:auto
    LOCALキーワードを使用する にチェック
    non を指定

    5.インポートの結果
    1)データベース:print テーブル:kigyouroku02
      フィールド: companyname
    データの中身:繧「繧、繝ッ繝シ繝

    2)データベース:test テーブル:kigyouroku02
      フィールド: companyname
    データの中身:アイワーチ
  • id:kohhi
    rouge_2008さん
    できました。
    データベース:print を
    1.削除
    2.新規に作成
    その後、インポートすると何も問題なく文字化けもしませんでした。
    原因はわかりませんが、できたので、これで良しとさせていただきます。
    またよろしくお願いします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません