質問 > その他 > データベースから読まれたデータが文字化けしているようです。 |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ゲスト |
投稿日時: 2007/9/16 23:18
対応状況: −−−
|
データベースから読まれたデータが文字化けしているようです。 お世話になります。
自分では解決できませんでしたので質問させていただきます。 分かる方がおられましたら、どうかお力をお貸しくださいm(_ _)m EC-CUBEのインストールを行い、管理画面に入ったらデザイン管理のレイアウト設定のブロックの文字や商品カテゴリが空白になったり会員登録時のご利用規約が数字の1以外空白になっています。 インストール時に入力したショップマスタ登録の店名も空白になります。 画面上部に表示される「>> /install/index.phpは、インストール完了後にファイルを削除してください。」の部分はうまく表示されています。 ページ全体が文字化けではなくデータベースから読まれたデータが文字化けしている感じです。 私の環境を記載します。 どこか間違っているところがあればご指摘をお願いします。 ★PHP php5-5.2.4-0vl0.40 output_buffering = On expose_php = Off memory_limit = 64M default_charset = EUC-JP allow_url_include = Off session.save_path = "/var/php5/session" session.use_only_cookies = On session.use_strict_mode = On session.entropy_length = 32 session.hash_function = 1 mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; ★MySQL MySQL-server-5.0.27-0vl3 my.cnfの設定です。 [mysqld] default-character-set=utf8 skip-character-set-client-handshake mysql> show variables like "char%"; | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ この環境でDBを新しくujisで作成してPHPを mbstring.internal_encoding = EUC-JPにして インストールをしたら今度は文字が??????となってしまいます。 mysql> create database `eccube_db` DEFAULT CHARACTER SET ujis; かなり行き詰っておりますので、どうか宜しくお願いします。 |
|
ゲスト |
投稿日時: 2007/9/17 13:39
対応状況: −−−
|
Re: データベースから読まれたデータが文字化けしているようです。
|
|
ゲスト |
投稿日時: 2007/9/17 14:07
対応状況: −−−
|
Re: データベースから読まれたデータが文字化けしているようです。 有難うございますm(_ _)m
ずと行き詰っておりましたので本当に助かります。 早速、設定を行ってみたいと思います。 本当に有難うございました。 UTF-8版の開発を行っているようなコメントが昨年にありましたが、早く発表してほしいです。 すると色々と悩まなくてよくなるのに。 本当に早くUTF-8版の発表がされる事を心より待っています。 開発者の皆様、どうか宜しくお願いします。 |
|
ゲスト |
投稿日時: 2007/9/17 14:49
対応状況: −−−
|
Re: データベースから読まれたデータが文字化けしているようです。 実行時に文字コードをSQL文で指定すればMySQLバージョンに関係なくいける気もします。
例えばmysql_connect($dbname, $host,xxxxxxx);と言ったDBの接続する記述の部分に mysql_query("set names ujis"); を追加すればいいように思うのですが、 EC-CUBEの場合、mysql_connectの部分が見当たらないです。 UTF-8仕様のスクリプトも配布していただけると助かるのですが、 まだ発表はなされていない感じです。 |
|
ゲスト |
投稿日時: 2007/9/17 15:10
対応状況: −−−
|
解決しました。 eccube_dir/data/class/SC_DbConn.php
の33行目の $this->dsn = $dsn;の下に下記2行を追加。 $buf = $objDbConn->prepare('SET NAMES ujis'); $objDbConn->execute($buf); これで今まで空白だった部分が普通に表示される等になりました。 |
|
ramrun |
投稿日時: 2007/9/19 11:21
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: 解決しました。 解決済みのようですが、一応、参照先が私のコメントになっているようなので説明を入れておきます。
上のゲストさんは 'SET NAMES ujis' で解決したようですが、私の環境ではちょっとだけ文字化けしました。 「あれ、なんでここの1文字だけ文字化けするんだろう?」という程度です。 'SET NAMES binary' としたのはPEAK XOOPS - Warning メッセージについてを参照のこと。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |