バージョン選択

フォーラム

メニュー

オンライン状況

42 人のユーザが現在オンラインです。 (33 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 42
もっと...

サイト内検索

質問 > その他 > データベースの文字化けについて教えてください

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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に。
mysqldump -u eccube_db_user -p eccube_db > eccube_db.sql --default-character-set=latin1
perl -pi -e 's/latin1/utf8/' eccube_db.sql


2.eccube_dbを作り直し。
mysql -u eccube_db_user -p
mysql> drop database eccube_db;
mysql> create database eccube_db default character set utf8;
mysql> quit


3.作り直したeccube_dbに先に用意したeccube_db.sqlを入れる。
mysql -u eccube_db_user -p 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側で接続キャラクタセットを latin1 utf8にする
・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
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,951名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.