• 締切済み

mysqldumpでリストアし一部外字が文字化け

mysqldump  –default-character-set=utf8 でバックアップしてたsqlファイルを mysql –default-character-set=utf8 でインポートしWEBを開いてみたら 一部の外字が文字化けしてしまいました。 nkfでバックアップのsqlファイルの文字コード調べてみると、EUCJP-winとなっていました。 既に元のDBはサーバークラッシュの為無い状態です。 どなたかご教授お願い申し上げます。 <元DBの環境> OS:Windows2003Server DB:MySQL5.0 PHP:5.0 <リストアするDBの環境> OS:windowsXP DB:MySQL5.0 PHP:5.2

  • MySQL
  • 回答数3
  • ありがとう数0

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

私の経験上一部の機種依存文字で変換がおかしかったことがありますね 「(株)」とか「~」とかローマ数字とか そういうのは何らかのプログラムで個別に具体的なコードを指定して 修正対応をしていたような・・・

is_rive
質問者

補足

ありがとうございます。 WEBより新規の登録すると(1)とか~が登録できるのですが、 元からあるDBのデータが?で表示されてしまいます。

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

「一部の外字」ってどんな字ですか。 Windowsの機種依存文字ならnkf -Ewで変換できると思うのですが。

is_rive
質問者

補足

ありがとうございます。  ~ などになります。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ダンプファイルがあるなら、適当なテキストエディタで開いて utf8で保存し直してみてはどうでしょう?

is_rive
質問者

補足

Cygwin lconv でutf 8 に変換しましたがだめでした。

関連するQ&A

  • mysqldumpでの文字化けに関して教えてください。

    WindowsXPにMySQL4.1.15-nt,Apache2.0.55,PHP5.05をインストールしてプログラムを作りました。 MySQLのインストール先: C:\Program Files\MySQL\MySQL Server 4.1 MySQLにはEUCでデータが格納されています。mysqldumpで同一のWindowsXPへダンプしたところそのファイルを開くと文字化けしていました。以下を試しましたが解決しませんでした。 (1) shell> mysqldump -u userneme -p database > c:\backup.sql 秀丸で開くとUTF-8で開かれEUCで読み直しても解決しませんでした。 (2) shell> mysqldump default-character-set=ujis -u userneme -p database > c:\backup.sql 秀丸で開くとShift_JISで開かれEUCで読み直しても解決しませんでした。 (3)mysql.iniに末尾に下記を追加しましたが、解決できませんでした。 [mysqldump] default-character-set=ujis 将来的にはレンタルサーバー上で利用したいと思いPHPからMySQLへの格納をEUCにしました。 ダンプが文字化けをして大変困っています。なにか手がかりでもご教授いただければと思っています。 宜しくお願い致します。

    • ベストアンサー
    • 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 何かお解かりになることがありましたら、宜しくお願いします。

  • phpMyadminの文字化けについて

    PHPでINSERTしたものをphpMyadminで確認すると 日本語が文字化けしています。 コマンドプロンプトでテーブルを見てみると文字化けは起こっていません。どこを変えればいいのでしょうか? いろんなサイトを参考にmy.iniを直してみてもだめでした。 ----- my.ini ------ [mysqld] default-character-set = utf8 skip-character-set-client-handshake character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 skip-character-set-client-handshake [mysqldump] quick max_allowed_packet = 16M default-character-set = utf8 [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates default-character-set = utf8 ----- phpMyadmin ----- テーブルの照合順序 utf8_general_ci mysql> \s Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 バージョンは以下のとおりです。 XAMPP 1.7.1 MySQL 5.1.33 PHP 5.2.9 phpMyadmin

    • ベストアンサー
    • MySQL
  • my.ini 内を変更しても文字化けがなおらない

    my.ini 内の [mysql]、[mysqld]、[mysqldump] の部分を変更したのですが、文字化けが直りません。 文字化けします。 対応:my.ini 内の [mysql]、[mysqld]、[mysqldump] の部分 ↓ [mysqld] default-character-set=utf8 skip-character-set-client-handshake [mysqldump] default-character-set=utf8 [mysql] default-character-set=utf8 に変更しましたが コマンドプロンプトで mysqlに接続後、statusと打ち込んで状態を確認しても Client characterset:latin1 Server characterset:latin1 となったままです。 とうすればよろしいでしょうか? 何卒よろしくお願い致します。

  • MAMPのMySQLで文字化けする

    すみません、教えてください(><) mac( os X 10.7.5)でMAMP+Eclipse+PHPを使って以下のようにMySQLにデータ挿入 mysql_connect('localhost','root','root') or die(mysql_error()); mysql_select_db('mymy'); mysql_query('SET NAMES UTF-8'); mysql_query('INSERT INTO item SET id=1, name="あいうえお"'); をしたのですが、 phpMyadminからデータを確認してみると日本語が文字化けしてしまいます。 (phpMyadminからデータを挿入した場合はちゃんと表示されます。) 色々と調べ、 Eclipseの環境設定でワークスペースの文字コードやphpの文字コードをUTF-8にしたり、 MySQLのmy.cnfファイルの中に以下 [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake default-character-set = utf8 character-set-server = utf8 collation-server = utf8_unicode_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 を追加して再起動し、DBを一旦削除して再度作り直して挿入してみたりとやったのですが、改善されません。 サーバ接続の照合順序 は「utf8_general_ci」として作成しています。 コンソールからMySQLへ接続してDBの文字コードを確認してみると character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /Applications/MAMP/Library/share/charsets/ | というかたちになっています。 他にどういった点を改善すればいいのでしょうか? もうお手上げ状態でどうすることも出来ずにいます。。。

  • UTF8からEUCJP-WINで文字化け

    MySQLのmysqldumpでUTF8を指定してバックアップを行っていましたが、 EUCJP-WINになっていました。 既にDBサーバーがクラッシュしていてUTF8のバックアップをとることはできず。 (1)、~、髙(はしごたか)は文字化けの状態です。 なんとか修復しようと試みていますが、どなたかよい方法を ご存じではないでしょうか。

  • 文字化けに悩まされています。

    一週間以上文字化けで悩まされています。 色々調べましたが、解決しなかったため、質問させて頂きます。 xamppでPHPからmysqlにデータを保存をした際、mysqlで文字化けを 起こしてしまいます。 ver1.7.1です。 文字化け対処方法は、my.iniの設定で [mysqld] character-set-server=utf8 skip-character-set-client-handshake 下の2行を追加しました。 他、[mysql][mysqldump]にdefault-character-setを追加しましたが 直らなかったため、コメントアウトしています。 phpファイルは全てutf-8で保存しています。 初心者故、大変申し訳ございませんが、ご教授いただければ幸いです。

  • phpMyAdminの文字化け

    いつもお世話になっております。 phpMyAdminで文字化けをしてしまいます。 文字コードは全てutf-8で統一しております。 (PHPファイル、データベース) (1)MySQLの設定を変更→解決せず -------------------------------------------------- # vi /etc/my.cnf ↓ ---------- ここから追加 ---------- ↓ [mysqld] character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 ↑ ---------- ここまで追加 ---------- ↑ :wq -------------------------------------------------- (2)phpMyAdminの設定を変更→解決せず -------------------------------------------------- $cfg['DefaultLang'] = 'utf-8'; $cfg['DefaultCharset'] = 'utf-8'; テーブルの照合順序とカラムの照合順序をutf8_unicode_ciに 変更いたしましたが、ダメでした。 -------------------------------------------------- (3)phpからデータベースに接続直後、SET NAME utf-8を実行→解決せず -------------------------------------------------- function db_conn() {  $db_link = @mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD));  if ($db_link) {   mysql_select_db(DB_DATABASE);   mysql_query('SET NAMES utf-8');   return $db_link;  } } ご教授お願いいたします。 よろしくお願いいたします。 <環境> OS:Red Hat Enterprise Linux ES[ v.4 ] MySQL:4.1.20 PHP:4.3.9

    • ベストアンサー
    • MySQL
  • 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
  • XAMPPの文字化け

    データベース(MySQL)に接続してデータを表示するというプログラムをPHPで作っています。ですが、日本語の部分が文字化けをしてしまいました。 どうやらソースコードではなくXAMPPの設定に原因があるそうです。 my.iniに以下の記述を追記すればよいとのことなのでmy.iniを変更したのですが、そうするとMySQLが起動できなくなってしまいます(起動してもすぐ自動的にストップしてしまいます) なので、my.iniの内容をコピーしたmy.confを作成し、そこに以下の記述を追記しました。 [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake default-character-set = utf8 character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 すると、MySQLは起動できるようになりました。しかしステータスを参照すると以下のように表記されており変更が反映されていません。 +--------------------------+----------------------------------------+ | Variable_name | Value +--------------------------+----------------------------------------+ | character_set_client | cp932 | character_set_connection | cp932 | character_set_database | latin1 | character_set_filesystem | binary | character_set_results | cp932 | character_set_server | latin1 | character_set_system | utf8 | character_sets_dir | D:\program\xampp\mysql\share\charsets\ | +--------------------------+----------------------------------------+ どうすればいいのでしょうか?いろいろ調べて試してみたのですが分かりません。このせいで先に進めず困っております。助けてください。。 保存先フォルダは D:\program\xampp\mysql です。 OSは Windows Vista です。 バージョンは ApacheFriends XAMPP version 1.7.7 + Apache 2.2.21 + MySQL 5.5.16 (Community Server) + PHP 5.3.8 (VC9 X86 32bit thread safe) + PEAR です。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL