質問 > その他 > データベースの文字化けについて教えてください |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
tonton |
投稿日時: 2008/11/10 19:43
対応状況: −−−
|
仙人 登録日: 2008/8/14 居住地: 投稿: 437 |
データベースの文字化けについて教えてください データベースは、mySQLを使用しています。
機能上は問題ないのですが、サーバによって、データベースを覗いたときに文字化けしているのが気になっています。 phpMyAdminで接続してフィールドの値を見ると、日本語になるところの文字が文字化けになっているのです。 多分charcter設定がlaten1になっているということだと思うのですが、文字の値も確認したい(またはDBで直接変更したい)ことがあるので、少々不便です。 これは、インストール時またはあとからでも日本語が見れるように設定できないものでしょうか? 詳しい方のお力を借りれると助かります。 宜しくお願いします。 --- 追記なのですが、過去ログを参考に、UTF8にsetするようにしてみたり、元に戻したり、クリーンインストールでもやってみましたが、直りません。根本的に違うような気も・・・それとも、理解してないのか、む〜ん。。。 自前サーバではないので、my.confは使えません。 |
tonton |
投稿日時: 2008/11/10 21:37
対応状況: 解決済
|
仙人 登録日: 2008/8/14 居住地: 投稿: 437 |
Re: データベースの文字化けについて教えてください 自己レスです。
文字化け対策できました。 でも、なんというか大変面倒でした。(というより、なんだか分からないうちにネット見ながらいじってたらできたって感じ・・・) それでも、できたことはできたので、一応以下に方法を記します。ただ、質問されても分からないかも;;; まず、eccubeに使用するDBを作成して、DBphpMyAdminからDBに接続します。 左のメニューからデータベース名をクリックして表示される上部のタブで、SQLを開きます。 まずは、 「show variables like "char%";」と打ち込んで、右下の[実行する]ボタンをクリックし、現状のDBに設定されているcharactersetを確認しておきましょう。 文字化けしているDBなら、多分、 ------- character_set_client latin1 character_set_connection utf8 character_set_database latin1 character_set_filesystem binary character_set_results latin1 character_set_server latin1 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ ------- などというように、文字コードが、「utf8」と「latin1」など混じっているのではないかと思います。もしくは、全て「latin1」になっているかもしれません。 同じくSQLで 「alter database 〜DB名 character set utf8;」 と打ち込んでみてください。 その後、「show variables like "char%";」で、character_set_server latin1 以外が全てutf8になっていればOKです。 そのあと、普通にEC-CUBEをインストールすれば、UTF8の文字コードで値がセットされます。 全ての環境で使えるかどうか分からないのですが、私は、これで文字化けは直りました。 1つの事例として参考にして頂けたら幸いです。 −−−追記−−− 新しい海外サーバーでクリーンインストールしたので、ためしてみました。 同じやり方で、文字化け解消インストールできました。 ご報告まで。 |
yumi |
投稿日時: 2008/11/11 11:00
対応状況: −−−
|
半人前 登録日: 2008/8/28 居住地: 地球 投稿: 26 |
Re: データベースの文字化けについて教えてください あたしも色々いぢりました。
やりすぎてサーバがハングアップ、カスタマーに電話して再起動したのは内緒です! 最初からcharacter_set_server latin1以外はutf8になってるのに ものすごい文字化けです(´Д⊂ これ、本当にどうにかなりませんかね。。。。 現在運用しているDBの文字化けを直したい今日この頃です。 (インストール時に上記の方法を使ったわけではないので、 今度やってみます。今はサーバの諸事情で負荷かけられないので;;) |
tonton |
投稿日時: 2008/11/11 13:39
対応状況: −−−
|
仙人 登録日: 2008/8/14 居住地: 投稿: 437 |
Re: データベースの文字化けについて教えてください >yumiさん
こんにちは。 色々苦労しますね; えっと、私も、インストールした後で変更という形でやってみたりしたのですが、どうも、あとから変更しても、すでに値が格納されている場合は、文字化けは直らないようです; 最初に文字コードを合わせてDBを作った後にそこにインストールで値を放り込む、というのでないとダメみたいでした。 (後からの推測なので検証したわけではないんですが;;;) もし、これで、できた方がいらっしゃったら、コメント残していっていただけると、後の方が助かると思いますので、宜しくお願いします。 私も、他にやってみて、というネタがあったら書き込むようにします。 ではでは。 |
ramrun |
投稿日時: 2008/11/11 22:57
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: データベースの文字化けについて教えてください MySQLのときしかわかりませんし、初期データで試したのであやしいですが。
1.eccube_dbをダンプして、latin1からutf8に。
2.eccube_dbを作り直し。
3.作り直したeccube_dbに先に用意したeccube_db.sqlを入れる。
で、とりあえずOKそうな感じです。 保証はできませんので、別のDBに試して確認して、よければ切り替えたほうがいいかも。 |
yumi |
投稿日時: 2008/11/18 10:08
対応状況: −−−
|
半人前 登録日: 2008/8/28 居住地: 地球 投稿: 26 |
おおおおお!!!!!感動! ramrunさんありがとうございました!
客先のEC-CUBEが拗ねて;; どうしてもDBの中身をMySqlAdminからチェックしたかったので チャレンジしてみました(もちろんテスト環境で。) 日本語で見れる! 感動(´∇`)!! クイックリファレンス見たら、使ったコマンド載ってるし。。。 もっとMySql勉強しなければと思いましたorz 精進しますorz ・・・て思ってEC-CUBEのサイト側で見たら全部???で(笑) |
ramrun |
投稿日時: 2008/11/18 10:53
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: おおおおお!!!!!感動! そういえば重要なことを書いてませんでした(汗)。
DBをUTF-8にした直後から ・チェンジセット 17559 MySQLの文字化け対策。(my.cnf の変更を不要に。) をやらなければ、その後のデータがまた壊れます。 そもそもDBが文字化けしたのは 1.MySQLの初期設定(接続キャラクタセット)がlatin1※ 2.EC-CUBEから接続キャラクタセットを指示していない なので、 ・MySQL側で接続キャラクタセットを ・EC-CUBEから接続キャラクタセットを指示する のいずれかを、本来であれば前もって(インストール前)やっておく必要があります。 SET NAMESのSQLインジェクションの危険性については、 OpenPNEの情報ですけど、 trac.openpne.jp/ticket/1510 UTF-8なら大丈夫なんじゃないか? ってことみたいです。 blog.ohgaki.net/set_namesa_mcb_asc ※実際はrpmパッケージがlatin1なので、ソースからのインストールでコンパイルするときにutf8にしている場合は問題ない |
yumi |
投稿日時: 2008/11/18 14:38
対応状況: −−−
|
半人前 登録日: 2008/8/28 居住地: 地球 投稿: 26 |
今度こそ(´∇`) 早速ありがとうございます。
そういえば昔自分でDB弄ってたときに、 「MySqlにはおまじないが必要なんだ。」と教えられて こんな記述書いたよな〜と思い出しながら変更シマシタ。 EC-CUBEから接続するときにキャラクタセットを指定してなかったんですねぇ〜・・・φ(..) というわけで無事に完了ヽ(´ー`)ノ日本語バンザイ 特に問題がなければこっち(字が読めるほう(笑))をお客様の接続先に切り替える予定です。 ありがとうございました。助かりましたm(_ _)m しかし本来の不具合はまだ解決していない...orz |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |