• ベストアンサー

Mysqlの文字化けについて

 WebからMysqlに入力します。それをWebで表示します。日本語を入力し、日本語が表示されます。  そこで質問です。Localで同様のことを実施します。当然出来ます。唯、日本語の部分をSqlでみると化けているようです。  問題はサーバからテキストファイルにデータを落としてLocalにインポートすると文字化けしてしまいます。  Mysqlの設定はUTF8です。データは見えなくても良いのですがインポートを上手くやる方法はないでしょうか、インポートのテキストは「insert 日本語」になっています。  当方、初心者です。宜しくお願い致します。

  • MySQL
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • mimzy
  • ベストアンサー率33% (32/96)
回答No.1

文字化けはMysql clientにも左右されますので切り分けが必要です。 通常UTF8に設定されているMysql DBを例えばWindows XPの Command promptからMysql DBに接続してSQLを投げても 文字化けするのが普通です。なぜならXPの文字コードはShift_jisのはずだから。 Web上でみるとBrowserが判別するので問題ありません。 そこで、 >問題はサーバからテキストファイルにデータを落として このサーバはMysqlでデータはUTF8ですか? 落とされたデータがUTF8でインポート先がMysqlでUTF8なら普通に インポートすれば問題ないはずです。

yotarou
質問者

補足

良く分かりました。ありがとうございます。色んなものを混ぜるのは難しいのですね。 データをUTF8にするには、どうすれば良いですか、テキストファイルを保存する時にUTF8を選択しましたが結果は変わりませんでした。

関連するQ&A

  • mysqlの文字化け

    初心者です。 よろしくお願いします。m(_ _)m サーバーをsakuraインターネットから海外のbluehostに変更しました。 mysqlのデータが文字化けしてしまって困っています。 sakuraではUTF-8で使用していましたので、bluehostでは照合順序をutf8_general_ciに設定してデータをインポートしました。 phpmyadminの中では問題なく文字化けも起こしていないのですが、WEB側で表示(charset=utf-8)させると、日本語が全部????????????と文字化けを起こしています。 非常に困っています。 どうぞよろしくお願い致します

    • ベストアンサー
    • MySQL
  • mySQL 4.0で文字化け

    はじめまして、PHP+mySQLでプログラムを勉強中の初心者です。 PHPからインサートした日本語データをphpmyadminで確認するとデータが化けています。SQL文自体をPHPで表示させると文字化けせずにちゃんと表示されます。  mySQL 4.1以降なら SET NAMESというコマンドをDB接続後に入れることで問題が回避できると言うことですが、mySQL 4.0ではコマンドエラーになってしまいます。 レンタルサーバーなので、PHPのアプリケーション側で対応できたらと考えています。 何かよい方法がないでしょうか? PHP 4.3.11は mySQL 4.0.27です。 PHPのキャラクターはutf-8, mySQLのCharactersetは latin1となっていました。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • phpMyAdmin内での文字化け

    サーバはさくらインターネットを利用してます。 レンタルサーバから専用サーバに移転したのですが、 専用サーバではphpMyAdminで日本語データの文字化けが起きます。 専用サーバのphpMyAdminからDB作成の際、下記の設定で行い、 MySQLの文字セット UTF-8 Unicode (utf8) MySQLの接続照合順序 utf8_unicode_ci DB の照合順序 utf8_unicode_ci レコードをINSERTする際、下記のように文字コードを指定し、 $sql=mb_convert_encoding($sql,"EUC-JP","EUC-JP"); execute_sql($con, $sql); 実行したら、phpMyAdmin内で日本語データが文字化けしました。 サイト内で表示しているDBデータ(日本語)は文字化けしませんでした。 DB の照合順序をutf8以外(ujis_japanese_ciなど)として、 DBを作った場合、レコードをINSERTしたら、サイト内のDBデータも phpMyAdmin内データもどちらも日本語が文字化けします。 また、レンタルサーバのphpMyAdminからDBデータをエクスポートして、 専用サーバのphpMyAdminからインポートした場合、 読み込むDBデータファイルの文字コードをUTF-8にしなければ、 phpMyAdmin内で日本語データが文字化けしてしまいます。 ただ、UTF-8にしてインポートしてもphpMyAdmin内では 文字化けしませんが、サイト内で表示しているDBデータは 文字化けします。 専用サーバのphpMyAdminから データを日本語の文字列に編集・更新したら、 phpMyAdmin内ではそのデータに関しては文字化けなく表示されますが、 サイト内ではそのデータは文字化けしてしまいます。 専用サーバ情報は下記の通りです。 【専用サーバ】 OS:CentOS 5 Apache 2.2.3 PHP5.1.6 DBサーバ:MySQL 5.0.77 アップしているファイルの文字コード:EUC 分かる方、ご回答、よろしくお願いいたします。

    • 締切済み
    • PHP
  • MySQL+PHP文字化け

    PHPからMySQLを使っています。 MySQLもPHPも文字コードはutf8を使っているのですが、PHPMyAdminから入力した日本語を普通に読み出すと文字化けして「??????」になってしまいます。また、自作コードからの日本語のinsertもできません。 しかし、「set character set utf8」を先に実行しておくといずれも上手くいきます。 これは一体どういうことなのでしょうか? そもそも全てutf8で統一しているつもりなのですが、MySQLかクライアントのどちらかで他のコードが使われているということなのでしょうか? MySQLはstatusなどを見てもutf8になっているので、どちらかと言えばクライアントの方が臭うのですが、よくわかりません。 どうか知恵をおかしください。

  • MySQL4.0 UTF-8 での文字化け

    こんにちは MySQL4.0 & PHP4.3 でHTMLは文字コードUTF-8で記述しています。 MySQL4.0の文字コード設定はレンタルサーバーのため不明ですが、 phpMyAdminで、utf-8にてデータを入力しました。 select文でMySQLのデータを拾ってくると文字化けはおきないのですが PHP経由でPOSTされた値を使ってinsertやupdateをかけると文字化けしてしまいます。phpMyAdmin上でも文字化けしていますが、phpMyAdminをEUC-JPにすると、入力した文字が文字化けせずに表示されます。 (が、すでに入っているデータは文字化けします、、、、) 入力画面は metaでUTF-8宣言をしており、ブラウザ(IE)上でエンコードを確認するとUnicode(UTF-8)になっています。4.1みたいにset names を指定するとうまくいくかな?と思ったのですが、やっぱり4.0なので結果は変わらず、でした。PHPのスクリプトそのものは、UTF-8で記述しているのですが、、、、 どういった項目をみなおせばいいのでしょうか?

    • ベストアンサー
    • MySQL
  • MYSQLの文字化けについて

    MYSQLの文字化けについて質問させてください。 MYSQL COMMAND LINE CLIENTでMYSQLに作ったデータベースに下記のSQL文でデータを入れると、下記のエラーが出ます。 sql 「insert into テーブル名 (id、type)values (1,'男性’);」 エラー文 incorrect string value: '入力文字が文字化けして表示’for column 'type’at row 1 文字化け対策として、調べたところ、下記のように「my.ini」に記述すると言うことでしたので、試してみました。 [mysql] default-character-set=utf8 [mysqld] default-character-set=utf8 skip-character-set-client-handshake [mysqldump] default-character-set =utf8 ちなみにその他情報です。 MySQLのバージョン MySQL 5.1 MySQLで有効になっている文字コード character_set_client | utf8 character_set_connection | utf8 character_set_database | utf8 character_set_filesystem | binary character_set_results | utf8 character_set_server | utf8 character_set_system | utf8 何かお解かりになることがありましたら、宜しくお願いします。

  • mysqlの文字化けについて

    mysqlの文字化けについて教えて下さい。 現在はテーブルを作って、データを挿入している段階なのですが、日本語入力のみ文字化けが起こります。 調べたところ、下記のように「my.ini」に記述すると言うことでしたので、試してみました。 [mysql] default-character-set=utf8 [mysqld] default-character-set=utf8 [mysqldump] default-character-set =utf8 skip-character-set-client-handshake ※そのほかSERVER SECTIONの箇所へも「default-character-set=utf8」を記述。 csvファイルを読み込みすると、日本語の箇所のみ文字化けが起こり、mysql上で直接データを挿入すると、ローマ字は入るのですが、漢字だとエラーになってしまいます。 エラー文 incorrect string value: '入力文字が文字化けして表示’for column 'カラム名’at row 1 何か原因のお解かりになる方、宜しくお願いします。

    • ベストアンサー
    • MySQL
  • Mysqlの文字化けについて

    現在さくらのレンタルサーバを使用しています。 MysqlをPDOからアクセスしているのですが、日本語入力をすると文字化けしてしまいます。 検索した結果、文字コードの問題が多く報告されていたため、 以下のサイト等を参考に、PHPMyAdminで文字コードをutf8_general_ciにして PDOでも文字コードをutf8にしてみました。 しかしながら、PDOから日本語をinsert等するとDB上で「??」が表示されてしまします。 http://d.hatena.ne.jp/sdhr/20100806/1281095806 非常に困っているので、どなたか解決策をご存知でしたらご教授お願い致します。

    • ベストアンサー
    • MySQL
  • MYSQLでの文字化け

    php(utf-8)を使ってmysqlで簡単なサイトを作ってみましたが, 日本語をフォームから入力して、表示するとき、ブラウザではまったく問題ないのですが、 phpMYadminでデータベースを開くとの日本語部分が文字化けして読めません。 ローカルでは問題ないので、サーバーの問題かとおもい、 他のサーバー(ロリポップ)にphpとsqlをテストでコピーしてみましたら大丈夫でした。 何かの設定かと思い、 mysql> SHOW VARIABLES LIKE 'char%';でチェックし比べてみたところ 正常(ローカル、ロリポップともに)のものは character set client utf8 character set connection utf8 character set database utf8 なのに 文字化けするほうは(北米のサーバー) character set client latin1 character set connection latin1 character set database latin1 でした。文字コードのデフォルトが違うからだと思い、ググって見たところ、 結構よくある問題で、my.cnf でデフォルト文字設定utf-8に変更するなどで解決できるとありました。 でも、使っているサーバーは予めphpMYadminがインストールされているレンタルサーバーであるのでmy.cnfはさわれないのでは??? サーバー会社に連絡して変更可能かと聞いたところ、my.cnfを変更することはできません。またデータベースのサポートはいたしません。と冷たく返答。サーバー会社を変えたいところですが、自分が借りたサーバーではないのでそのまま使うしかありません。 ただ、教わった、sqlコマンドからALTER DATABASE <your_database_name> CHARACTER SET utf8 COLLATE utf8_general_ci を実行したところcharacter set databaseのみutf8になりました。(文字化けは一緒) character set connection とcharacter set database をmy.cnfをいじらず、sqlコマンドで変更可能なのでしょうか? もし、無理ならばどのような方法があるのでしょうか? サイトのフォームからの送信と受信はUTF-8に設定しています。 (だからだとおもいますが、ブラウザの表示だけは文字化けせずにでます。) お知恵がありましたらよろしくお願いします。

    • ベストアンサー
    • MySQL
  • ブラウザーで日本語が文字化けする(PHP+MySQL)

    以下の現象に対処したいのですが、どうすればいいか弱っています。 (1) phpMyAdminからSQLでテーブルに日本語を挿入して、 PHPプログラムでブラウザー表示すると文字化け(?????で表示)する。 phpMyAdminでこのデータを表示すると、正しく日本語表示されている。 (PHPプログラム内で直接日本語データを記述して挿入しても同じ現象となる) (2) ブラウザーで日本語を入力してPHPプログラムで受取りMySQLに出力して、 そのデータをPHPプログラムでブラウザー表示すると問題なく日本語が表示される。 phpMyAdminでこのデータを表示すると、文字化け(ぐじゃぐじゃの文字で表示)する。 利用しているホスティングサービスは、お名前・COMのVPSプラン 実行時の環境 MySQL: サーバのバージョン: 5.0.77 サーバ: Localhost via UNIX socket MySQL の文字セット: UTF-8 Unicode (utf8) MySQL の接続照合順序: utf8_unicode_ci PHP : PHP5を使用 phpプログラムは、UTF-8で記述。 出力されるHTMLの文字セット <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    • ベストアンサー
    • PHP