質問 > その他 > 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様
ご返信、ありがとうございます。 また、大変わかりやすいご回答ありがとうございます。 ご教示いただいた方法で、再インストールしてみました。 引用:
ハイフンを除いた状態で再インストールしたのですが、 やはり状況は変わらずでした。 引用:
データベース、テーブル共に、UTF8の設定になっていました。。。 |
patapata |
投稿日時: 2011/3/10 18:52
対応状況: −−−
|
仙人 登録日: 2010/7/7 居住地: 神奈川県 投稿: 502 |
Re: Ver2.11.0 β2版でのMySQL文字化けについて コマンドプロンプト側はどうやら正常そうですね。
引用:
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様
ご返信、ありがとうございます。 引用:
そうですね。。大変失礼しました。 コマンドプロンプトから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文字化けについて 引用:
テスト環境として間違いです。 それだと中身のデータは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文字化けについて 引用:
気になる点はこの記述です。 どのように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をインストールしてみましたが、 文字化けは解決せずでした。 引用:
上記結果から他に考えられる事がありましたら、 ご教示願います。 |
patapata |
投稿日時: 2011/3/10 13:55
対応状況: −−−
|
仙人 登録日: 2010/7/7 居住地: 神奈川県 投稿: 502 |
Re: Ver2.11.0 β2版でのMySQL文字化けについて 引用:
まさにうちはコレが原因です(ーー;) ローカル接続できるのも知ってはいますが、没交渉に終わりました。私が知らない裏事情があるのかも知れません。 --------------------- それと・・・愚痴りがてら一応私の環境で確認できた方法は、 my.iniの各文字設定はUTF8 以下はコメントアウト #skip-character-set-client-handshake コマンドプロンプト 文字コード(Sjis) chcp 932 MySql接続後 set names sjis; で確認はできました。またデータがUTF8で保存されてることが前提です。 その他 私が言ったコマンドプロンプトをUTF8に対応させる方は面倒なので確認してません。以上です |
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |