バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > その他 > Ver2.11.0 β2版でのMySQL文字化けについて

その他

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Moris
投稿日時: 2011/3/11 11:11
対応状況: −−−
新米
登録日: 2011/3/10
居住地:
投稿: 7
Re: Ver2.11.0 β2版でのMySQL文字化けについて
>patapata様
ご返信ありがとうございます。

コマンドプロンプトから試しにINSERTしたデータは、
・テーブル:dtb_deliv
・カラム:nameに'佐川急便' です。

コマンドプロンプトからUTF8でINSERTしたデータが
EC-CUBE画面上で文字化けする現象だけであれば、
INSERTしたデータの問題も考えられると思います。

ただ今回の問題では、
EC-CUBEインストール時にデフォルトで入っている日本語データ
(例えば、dtb_delivの'サンプル業者')も、
コマンドプロンプトでmysql接続後に適切なcharacterのsetを実行してSELECTすると文字化けします。

今回皆様にご教示いただいた内容をもとに調査し、
根本的な解決には至っておりませんが、おそらく
環境依存なのかUTF8ではない文字コードで、
EC-CUBEにINSERTされてしまっているのが濃厚かと思います。

最新版2.11.0 β2版で具体的にどこを直せば解決するのかは
わかっていませんが、別環境へのインストール等を
試して経過を見てみる事にします。

一旦保留とさせていただきますが、
ご意見いただいた皆様、誠にありがとうございました。
今後とも宜しくお願い致します。

原因がわかった際には、再度更新致します。
#ステータスを保留にして投稿すると、元の[---]に戻ってしまうため、[---]のままですが、ご了承ください。
patapata
投稿日時: 2011/3/11 10:41
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: Ver2.11.0 β2版でのMySQL文字化けについて
思いつくのはあと・・・
どんなデータinsertしてますか?

sjisの拡張に含まれているデータを送りつけると、変換は単なるsjis→utf8だと思ってしますので化けると思いますよ。
Moris
投稿日時: 2011/3/10 20:03
対応状況: −−−
新米
登録日: 2011/3/10
居住地:
投稿: 7
Re: Ver2.11.0 β2版でのMySQL文字化けについて
>patapata様
ご返信、ありがとうございます。
また、大変わかりやすいご回答ありがとうございます。
ご教示いただいた方法で、再インストールしてみました。

引用:

EC-CUBE側は・・・
構造がかわってしまったので、正確かはわかりませんが、
β版はmtb_constans の CHAR_CODE をみて発行しているみたいです。

SC_Query.php 79行目
$this->conn->setCharset(CHAR_CODE);

っと、もしかしたら、デフォルトCHAR_CODEは"UTF-8"でデファイン指定されてますが、ハイフンで駄目かもしれません。
ハイフン削除して試してください。


ハイフンを除いた状態で再インストールしたのですが、
やはり状況は変わらずでした。

引用:

次に、データベースの文字コードが違うかもしれません。
SHOW CREATE DATABASE データベース名
で各データベースの文字コードを調べてください。

また特殊なケースとして同様に、
SHOW CREATE TABlE テーブル名
でテーブル毎の文字コードも調べることが可能です。
→テーブルのみ文字コードが違うなんて特殊ケースがたま〜にあります。


データベース、テーブル共に、UTF8の設定になっていました。。。
patapata
投稿日時: 2011/3/10 18:52
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: Ver2.11.0 β2版でのMySQL文字化けについて
コマンドプロンプト側はどうやら正常そうですね。

引用:

EC-CUBE側の設定で、インストール時に
デフォルトで入る日本語データやEC-CUBE管理画面から
登録した日本語データがutf8ではないデータで登録されている
という事でしょうか


EC-CUBE側は・・・
構造がかわってしまったので、正確かはわかりませんが、
β版はmtb_constans の CHAR_CODE をみて発行しているみたいです。

SC_Query.php 79行目
$this->conn->setCharset(CHAR_CODE);

っと、もしかしたら、デフォルトCHAR_CODEは"UTF-8"でデファイン指定されてますが、ハイフンで駄目かもしれません。
ハイフン削除して試してください。

----

次に、データベースの文字コードが違うかもしれません。
SHOW CREATE DATABASE データベース名
で各データベースの文字コードを調べてください。

また特殊なケースとして同様に、
SHOW CREATE TABlE テーブル名
でテーブル毎の文字コードも調べることが可能です。
→テーブルのみ文字コードが違うなんて特殊ケースがたま〜にあります。

----

他には、あんまり思いつかないなぁ。
mysqlのダンプとってテーブルのSQLみるだとか?
でもこれも確か、文字コード指定在ったような気がするし・・・
Moris
投稿日時: 2011/3/10 16:54
対応状況: −−−
新米
登録日: 2011/3/10
居住地:
投稿: 7
Re: Ver2.11.0 β2版でのMySQL文字化けについて
>patapata様
ご返信、ありがとうございます。

引用:

テスト環境として間違いです。
それだと中身のデータはsjisです。
中身のデータを正しくutf8で入れて確認してください。


そうですね。。大変失礼しました。

コマンドプロンプトからmysqlに接続し、
●set names utf8; を実行
●set character_set_client = sjis;
 set character_set_connection = utf8;
 set character_set_results = sjis; を実行
●show variables like '%char%'; で確認
→以下の状態

character_set_client | sjis
|
character_set_connection | utf8
|
character_set_database | utf8
|
character_set_filesystem | bina
|
character_set_results | sjis
|
character_set_server | utf8
|
character_set_system | utf8

この状態で、日本語データをテストDBにINSERTすると、
正常にINSERTされ、コマンドプロンプト上でSELECTした時も
日本語データが文字化けせずに表示されました。

<追記>
コマンドプロンプト上で、set names utf8;を実行後、
テストDBにINSERTした時と同様、EC-CUBE2.11.0 β2版を
インストールしたDBに対して、日本語データをコマンド
プロンプトからINSERTしました。

INSERTは正常に行われ、コマンドプロンプト上からも
INSERTした日本語データは、SELECTで文字化けせず取得できました。
EC-CUBE管理画面では、INSERTした日本語データのみ、
文字化けしています。

EC-CUBE側の設定で、インストール時に
デフォルトで入る日本語データやEC-CUBE管理画面から
登録した日本語データがutf8ではないデータで登録されている
という事でしょうか。。。
patapata
投稿日時: 2011/3/10 16:34
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: Ver2.11.0 β2版でのMySQL文字化けについて
引用:

新規に作成したテストDBへのINSERTは、
コマンドプロンプト側の問題なのかどうか検証するため、
コマンドプロンプトから実行しました。
その際、mysqlに接続後、set names-sjis;を実行し、
INSERT文を実行しました。

テスト環境として間違いです。
それだと中身のデータはsjisです。
中身のデータを正しくutf8で入れて確認してください。

またstatusコマンドではなく、
mysql> show variables like '%char%';
にて表示される各文字コードを提示していただけると、話しが早く済むかもしれません
Moris
投稿日時: 2011/3/10 16:18
対応状況: −−−
新米
登録日: 2011/3/10
居住地:
投稿: 7
Re: Ver2.11.0 β2版でのMySQL文字化けについて
>patapata様
ご返信、ありがとうございます。

新規に作成したテストDBへのINSERTは、
コマンドプロンプト側の問題なのかどうか検証するため、
コマンドプロンプトから実行しました。
その際、mysqlに接続後、set names-sjis;を実行し、
INSERT文を実行しました。

なお、新たに以下の事がわかりました。
EC-CUBE 2.11.0 β2版をインストールしているDBを使用して、

●EC-CUBE管理画面から日本語データをセットした場合
→コマンドプロンプト、phpmyadminでは文字化けして
表示される
●コマンドプロンプト、phpmyadminから日本語データを
INSERT/UPDATEした場合
→EC-CUBE管理画面で「???」に文字化けして表示される

EC-CUBEとコマンドプロンプト・phpmyadminの文字コード設定の
整合性が取れていないという事が原因だと思うのですが、
同じインストール環境で、EC-Cube2.4.4はコマンドプロンプト・phpmyadminから日本語データを更新してもEC-CUBE管理画面で
文字化けせずに表示される点がひっかかっています。
最初の質問時に記載した、SC_DBConnの設定部分が絡んでいるのでしょうか。。。
patapata
投稿日時: 2011/3/10 15:52
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: Ver2.11.0 β2版でのMySQL文字化けについて
引用:

新規にテスト用DB(文字コードUTF8)を作成し、
日本語データをINSERT/SELECT
→日本語は正常に表示される。

気になる点はこの記述です。
どのようにINSERTしましたか?
もしコマンドプロンプトから行ったのであれば、
INSERT文の文字コードを意識しましたか?

Moris
投稿日時: 2011/3/10 15:19
対応状況: −−−
新米
登録日: 2011/3/10
居住地:
投稿: 7
Re: Ver2.11.0 β2版でのMySQL文字化けについて
>red様、patapata様、seasoft様
ご回答、誠にありがとうございます。
返信が遅くなり、すみません。
皆様からいただいた情報を元に、
以下について確かめてみました。

■my.iniのCLIENT SECTIONを以下に変更
default-character-set=utf8

→この状態で、コマンドプロンプトからMySQLに接続し、
SET NAMES sjis;を実行。
新規にテスト用DB(文字コードUTF8)を作成し、
日本語データをINSERT/SELECT
→日本語は正常に表示される。

■phpMyAdminで、
テスト用DB/ec-cube2.4.4環境DB/ec-cube2.11.0 β2版環境DB
を確認

テスト用DB→日本語は正常に表示される
ec-cube2.4.4→日本語は正常に表示される
ec-cube2.11.0 β2版→日本語は文字化け

また、patapata様にご教示いただいた通り、
以下の設定/手順で再度EC-CUBEをインストールしてみましたが、
文字化けは解決せずでした。

引用:

my.iniの各文字設定はUTF8

以下はコメントアウト
#skip-character-set-client-handshake


コマンドプロンプト 文字コード(Sjis)
chcp 932

MySql接続後
set names sjis;

で確認はできました。またデータがUTF8で保存されてることが前提です。


上記結果から他に考えられる事がありましたら、
ご教示願います。
patapata
投稿日時: 2011/3/10 13:55
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: Ver2.11.0 β2版でのMySQL文字化けについて
引用:

まぁ、phpMyAdmin も幾分かの前科者ですから、組織によっては、上司が嫌っているとかもあるんですかね。

まさにうちはコレが原因です(ーー;)
ローカル接続できるのも知ってはいますが、没交渉に終わりました。私が知らない裏事情があるのかも知れません。


---------------------
それと・・・愚痴りがてら一応私の環境で確認できた方法は、

my.iniの各文字設定はUTF8

以下はコメントアウト
#skip-character-set-client-handshake


コマンドプロンプト 文字コード(Sjis)
chcp 932

MySql接続後
set names sjis;

で確認はできました。またデータがUTF8で保存されてることが前提です。

その他
私が言ったコマンドプロンプトをUTF8に対応させる方は面倒なので確認してません。以上です
(1) 2 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,353名です
総投稿数は110,082件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1304
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.