質問 > その他 > DBの文字化けについて |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
pisa |
投稿日時: 2010/6/14 19:38
対応状況: −−−
|
常連 ![]() ![]() 登録日: 2010/4/18 居住地: 投稿: 39 |
DBの文字化けについて 初心者です。
現在とあるサーバーを利用してECCUBEを稼動させていたのですが、諸事情からサーバー移転が必要となりまして、DBのダンプ&リストアを試みているのですが…。 移転先で文字化け発生。 念のため、旧サーバー内のDBを覗いてみるとエクスポート以前に文字化けしていました。 サイト自体は何の問題もなく普通に表示されていましたので、この事実に気付かずにいた次第です。 こういう場合、当然エクスポートしたsqlファイルは既に文字化けしているわけで、移転先では使えないかと思うのですが、今後の手順としては 1.旧サーバーDBの文字化けを直す 2.エクスポート 3.インポート といった流れになるのでしょうか? また文字化けを解消するにはどうようにすれば良いのでしょうか? 文字化けを起こしているのは日本語部分です。 以上ご存知の方がいらっしゃればご教示お願いいたします。 |
AMUAMU |
投稿日時: 2010/6/14 20:27
対応状況: −−−
|
神 ![]() ![]() 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: DBの文字化けについて ポイントは何点かあります。
・新旧サーバのDBの文字コードは共にEC-CUBE標準のUTF-8ですか? ・エクスポートはどのようにしましたか? ・エクスポートしたsqlファイルが文字化けしているというのは何をもって判断しましたか?確認している環境だけが問題でファイル自体は、実は文字化けしていないという事はありませんか? ・インポートの方法はどのようにしましたか?インポート時に文字コードについて間違っていませんか? これらを確認されると良いと思います。 また、DB自体のエクスポート/インポートはDBソフトの世界ですのでお使いのDBのマニュアル等を参考にされるのが良いと思います。 また下記もお読み頂き質問を補充されると回答があるかもしれません。 http://xoops.ec-cube.net/modules/tinyd0/index.php?id=8
|
pisa |
投稿日時: 2010/6/14 21:03
対応状況: −−−
|
常連 ![]() ![]() 登録日: 2010/4/18 居住地: 投稿: 39 |
Re: DBの文字化けについて 返信ありがとうございます。
>・新旧サーバのDBの文字コードは共にEC-CUBE標準のUTF-8ですか? はい。 >・エクスポートはどのようにしましたか? 容量が大きく、一括でDLするのは無理だったので、PHPMYADMI N<DB のダンプ(スキーマ)表示からテーブルを5つづつ選択、 「DROP TABLE」を追加するにチェックを入れた上で圧縮無しのファイル保存を行ないました。 >・エクスポートしたsqlファイルが文字化けしているというのは何をもって判断しましたか?確認している環境だけが問題でファイル自体は、実は文字化けしていないという事はありませんか? サイト上で文字化け、DBのテーブル表示で文字化け >・インポートの方法はどのようにしましたか?インポート時に文字コードについて間違っていませんか? PHPMYADMIN<インポートを選択<ファイルの文字セット=utf8を選択、インポートしました。 どこで文字化けを起こしたのか遡ってみてみると、旧サーバーのDBテーブル上で既に文字化けを起こしています。 サイト上は問題無く表記されているのでこの事実に気付かず運営していました。 やはり旧サーバーの文字化けを修正してからエクスポートといった手順を踏まなければならないのでしょうか? 試しにダンプしたファイルをローカル上でutf保存して見ましたが、当然の様に無駄に終わりました…。 |
pisa |
投稿日時: 2010/6/14 23:10
対応状況: −−−
|
常連 ![]() ![]() 登録日: 2010/4/18 居住地: 投稿: 39 |
Re: DBの文字化けについて サイト、管理画面等は一切文字化けしておりません。
DBの表示は文字化けしています。 今回行ないたいのはサーバー移転に必要な情報を旧サーバーから抜き取るという作業。 最悪顧客データだけでもエクスポートする事が出来れば、と思っています。 ECCUBEの管理画面から顧客データをCSVでDL→保存する分には文字化けも起こらないのですが、それだと肝心のパスワードを抜き取る事が出来ません。 新サーバーに移転して「既存会員に再登録をお願いする」という最悪の状況だけは何とか避けたいのですが…。 何か良い方法はございませんでしょうか? ここまでの確認事項として ■データベースの文字セットはutf ■data/class/SC_DbConn 内に$this->conn->query("SET NAMES utf8"); の記述有り ■DBの表示(エクスポートしたファイル含)以外には一切文字化け見当たらず 本来であれば現行サーバーDBの文字化けを直してエクスポート、といった手順になるかとは思いますが、近々移転するサイトでもありますので他の手順でも何か良い方法があれば、と思うのですが。 |
pisa |
投稿日時: 2010/6/14 23:17
対応状況: −−−
|
常連 ![]() ![]() 登録日: 2010/4/18 居住地: 投稿: 39 |
Re: DBの文字化けについて 追記
■phpmyadminを再度確認してみると MySQL の文字セット: UTF-8 Unicode (utf8) MySQL 接続照合順序:utf8_general_ci となっておりますが、この辺に問題があるのでしょうか? UTF-8 inicodeに統一しようとしましたが、出来ず。 文字セットと照合順序を開いてみると、UTF-Unicodeは選択されておりません。 |
pisa |
投稿日時: 2010/6/14 23:57
対応状況: −−−
|
常連 ![]() ![]() 登録日: 2010/4/18 居住地: 投稿: 39 |
Re: DBの文字化けについて 失礼しました。
上記は問題無いみたいですね。 ログで SQLで「SET NAMES utf8」を毎回発行することで解決します。 という一文を見つけたのですが、具体的にどういう事なのでしょうか? 勉強不足なのは承知しております。 宜しくお願いします。 |
AMUAMU |
投稿日時: 2010/6/15 19:03
対応状況: −−−
|
神 ![]() ![]() 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: DBの文字化けについて 引用:
どこで文字化けを起こしたのか遡ってみてみると、旧サーバーのDBテーブル上で既に文字化けを起こしています。 となると、旧サーバ上の文字化け状態次第となりますね。 旧サーバの管理画面で見る限りは文字化けしていないのでしょうか? 文字化けは一部だけですか?それとも全部ですか? 一部だけの場合はその一部だけを旧サーバ上で復旧する作業をしないと厳しいと思います。これは少々高度な個別作業が必要かと思います。 全部の場合はエクスポートの仕方でなんとかなりそうな気がします。 エクスポートの文字コード指定を無しにするなどして、素でデータを取り出しコードを特定するなどの作業をしてみるといいかもしれません。 EC-CUBEにおけるSET NAMES utf8 はEC-CUBE稼動時の話なので別の話ですね。 どうも全体的にはDB自体のインポート・エクスポートに関する部分の問題なので、EC-CUBEから脱線しているような気もします。 まずはphpMyAdminに関する情報を収集され、試されるといいと思います。 ※蛇足ですが、サイトの移転は問題も多く、経験を詰んだ技術者でも苦労することが多々あります。簡単ではない世界です(すんなりいく場合もありますが)。
|
pisa |
投稿日時: 2010/6/15 20:34
対応状況: −−−
|
常連 ![]() ![]() 登録日: 2010/4/18 居住地: 投稿: 39 |
Re: DBの文字化けについて レスありがとうございます。
文字化けは広範囲にわたって起きていました。 文字コードを変換してダンプ&リストア、無事解決に至りました。 今回の原因はプログラムデータの投入をutf以外の文字指定で行っていた為、文字化けが起きていたようです。 サイトとDBはutfで動いていた為、管理画面上等で問題が表面化せず、今回まで気付きませんでした。 この度は要所をおさえたご指摘ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |