バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 文字化け

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
x67
投稿日時: 2009/1/16 18:26
対応状況: −−−
新米
登録日: 2009/1/16
居住地: osaka
投稿: 9
文字化け
お世話になります、初投稿です。
インストールまでは問題なく動きました。
お店として動かそうと、管理画面の
SHOPマスタ登録を記入して『この内容で登録する』
ボタンを押すと、日本語の部分のみ文字化けします。
こんな感じで。=>եȥ꡼

EC CUBEがUTF-8バージョンだったので、DBもUTF-8です。
以前インストールしていたoscommerce用にphp.iniで設定
を変えていたのですが、それを削除しても同じ症状です。

何処を弄れば良いのでしょうか?
何かご存知の方、アドバイスお願いします。

環境
EC-CUBE:2.3.3
OS:Linux
DB:MySQL 5.0.22 UTF-8
WEB:Apache/2.0.52 (Red Hat)
PHP:4.3.9
tonton
投稿日時: 2009/1/16 19:46
対応状況: −−−
仙人
登録日: 2008/8/14
居住地:
投稿: 437
Re: 文字化け
DBの文字コードをセットするときに、

alter database 〜DB名 character set utf8;
で文字コードをセットされました?
その次に
show variables like "char%";
で文字コードをチェックしたときに、サーバーのシステム文字コード以外UTF-8になっています?

SQLで上記2つを確認して頂いて、それで文字化けする場合は、
/data/class/SC_DbConn.php
のL65あたりを見てみてください。

if (DB_TYPE == 'mysql') {
$objDbConn->query('SET NAMES utf8');
}

という行が無くはないですか?

先日、新しいサーバに2.3.3を入れたとき、EC-CUBEサイトからダウンロードしてきた2.3.3のソースには、2.3.2では入っていた上記コードが再び抜けてしまっていました。
データベースサーバの文字コードのデフォルトがUTF-8ではない場合、上記コードが入っていないと、一旦UTF-8にセットしてもまたスクリプトを起動したときに元の文字コードに戻ってしまうそうです。

同じ現象かどうかわかりませんが、この辺が一番怪しそうな気がします;
違ったら、ごめんなさい。
x67
投稿日時: 2009/1/16 20:03
対応状況: −−−
新米
登録日: 2009/1/16
居住地: osaka
投稿: 9
Re: 文字化け
tonton様、レスありがとうございます。
引用:

/data/class/SC_DbConn.php
のL65あたりを見てみてください。

if (DB_TYPE == 'mysql') {
$objDbConn->query('SET NAMES utf8');
}

という行が無くはないですか?


無いですね。
その付近のコードは55行目より
引用:

$this->dsn = $dsn;
} else {
if(defined('DEFAULT_DSN')) {
$objDbConn = DB::connect(DEFAULT_DSN, $options);
$this->dsn = DEFAULT_DSN;
} else {
return;
}
}
}
$this->conn = $objDbConn;
$this->error_mail_to = DB_ERROR_MAIL_TO;
$this->error_mail_title = DB_ERROR_MAIL_SUBJECT;
$this->err_disp = $err_disp;
$this->dbFactory = SC_DB_DBFactory_Ex::getInstance();
}


こんな感じです。

if (DB_TYPE == 'mysql') {
$objDbConn->query('SET NAMES utf8');
}

これを何処に入れるべきか、、
他の行を見ると
if (DB_TYPE == 'mysql')

if (DB_TYPE == "mysql")
ですがシングルクオートでも良いのですか?

というよりも、
ファイルごとにバージョンがあるわけじゃないんですねEC CUBEは。
oscommerceだと作成した日とバージョンがコピーライトの部分に
入っているので分かりやすいんですけどね。
tonton
投稿日時: 2009/1/16 20:42
対応状況: −−−
仙人
登録日: 2008/8/14
居住地:
投稿: 437
Re: 文字化け
>無いですね。

ああ。了解しました。
じゃあ、そこが原因かもしれませんね。

>ファイルごとにバージョンがあるわけじゃないんですねEC CUBEは。

そうですね。わたしも履歴欲しいです。
ちょこちょこカスタマイズをしてしまっているので、新しくなったソースだけマージしたいなと思うことがあります。


さて。
-------------
$this->dsn = $dsn;
} else {
if(defined('DEFAULT_DSN')) {
$objDbConn = DB::connect(DEFAULT_DSN, $options);
$this->dsn = DEFAULT_DSN;
} else {
return;
}
}
}
if (DB_TYPE == 'mysql') {
$objDbConn->query('SET NAMES utf8');
}
$this->conn = $objDbConn;
$this->error_mail_to = DB_ERROR_MAIL_TO;
$this->error_mail_title = DB_ERROR_MAIL_SUBJECT;
$this->err_disp = $err_disp;
$this->dbFactory = SC_DB_DBFactory_Ex::getInstance();
}
--------------
こういう感じで、
$this->conn = $objDbConn;
の前に入れてみてください。

それで解決するかもしれません。
ただ、一旦、文字コードが変わってしまったDBのデータは、後から直るわけではないので、もしかしたら、可能なら、一旦文字コードをセットしたと頃から再インストールしたほうが安全かもしれませんね。
(データはデータ自体に文字化けが無ければバックアップを取って後から格納すれば良いと思うので。)
x67
投稿日時: 2009/1/16 21:28
対応状況: −−−
新米
登録日: 2009/1/16
居住地: osaka
投稿: 9
Re: 文字化け
tonton様、引き続きありがとうございます。

引用:

$this->conn = $objDbConn;
の前に入れてみてください。


とりあえずこれだけで試してみましたが、症状は変わらず。。
再度インストールし直してみます。

ソースが多いので全く読んでないのですが、
configファイル的な物がどこかに存在するのでしょうか?
再度入力するのが面倒なので。
tonton
投稿日時: 2009/1/17 0:12
対応状況: −−−
仙人
登録日: 2008/8/14
居住地:
投稿: 437
Re: 文字化け
/data/install.php
がインストール時に入力した内容を元に書き込まれるCONFIGファイルです。

>とりあえずこれだけで試してみましたが、症状は変わらず。。
再度インストールし直してみます。

そうですね。ここが原因のことは多いと思うのですが、違う原因も考えられますし、取り合えず、可能であれば可能性のあるところはつぶしておいたほうが安心かもしれません。

がんばってください。
x67
投稿日時: 2009/1/17 11:23
対応状況: −−−
新米
登録日: 2009/1/16
居住地: osaka
投稿: 9
Re: 文字化け
configファイル見つけました。
ありがとうございます。

MySqlの見直しをしたところ
character_set_filesystem binary
character_set_server ujis
以外はutf8でしたね。

状況は以前変わらずですが
ご報告までに。
x67
投稿日時: 2009/1/17 11:54
対応状況: −−−
新米
登録日: 2009/1/16
居住地: osaka
投稿: 9
Re: 文字化け
お騒がせしました。
なんとも間の抜けたハナシですがphp.iniにて
以下の文にて文字化け脱出しました。

mbstring.http_output = UTF-8
mbstring.internal_encoding = UTF-8

これと
../ec_cube/data/class/SC_DbConn.phpの65行目付近に以下を追記。

if (DB_TYPE == "mysql") {
$objDbConn->query("SET NAMES utf8");
}

(同じファイルの他の文を見ると引用府が " なので合わせました)' でも " でもどっちでもいいのかな?
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン

右上バナー


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は73,739名です
総投稿数は102,973件です

投稿数ランキング

1
seasoft
7333
2
468
3132
3
AMUAMU
2712
4
nanasess
2192
5
umebius
2042
6
yuh
1664
7
red
1456
8
h_tanaka
1169
9
tsuji
942
10
fukap
907
11
shutta
835
12
tao_s
794
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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