ホーム > フォーラム > 質問箱 > XOOPSで「?????」となる文字化け

XOOPSで「?????」となる文字化け
投稿者: carol0825 | 投稿日時: 2007/10/15 10:09 | 閲覧: 48652回
carol0825
Windows XPのローカル環境に以下のバージョンでXOOPSをインストールしましたところ、全角文字がすべて「???????」になってしまう現象が起きています。

MYSQL 4.1.22
Apache 2.0.61
PHP 5.2.4
XOOPS 2.0.16a

また、PHPmyadmin 2.1.11をインストールしましたが、こちらはXOOPSのように「???????」という文字化けではないのですが、異なる文字化けが発生しており、こちらはInternetExplorerのエンコードを「日本語(自動選択)」にすると正常に文字が表示されます。

C:\windows配下のmy.iniとphp.iniにてdefault_charsetはsjisと指定はしており、C:\に設置したmy.cnfでもdefault_charsetはsjisを指定しております。


これまで過去ログやネットでいろいろ調べながらいろいろ試しましたが、未だに解決できません。
皆様のアドバイスをいただきたいと思いますので、よろしくお願いいたします。

あと、PHPmyadminを正しく表示させると「お使いの PHP MySQL ライブラリのバージョン 5.0.45 が MySQL サーバのバージョン 4.1.22 と異なります。これは予期しない不具合を起こす可能性があります。」と表示されますが、これも関係しているのでしょうか?

あまりよく理解していないため質問内容に不備があるかもしれませんがご指摘いただきましたら都度情報を追加しますので、よろしくお願いいたします。

コメント(5)

新しいものから | 古いものから | ネスト表示 | RSS feed
Re: XOOPSで「?????」となる文字化け 
投稿者: yoah | 投稿日時: 2007/10/15 20:34
yoah

たぶんですが


Xoopsでは EUC-jp の文字コードを使用するはずだと思います。


詳しくお答えできなくてすいません。
Re: XOOPSで「?????」となる文字化け 
投稿者: iamcactus | 投稿日時: 2007/10/16 17:31
iamcactus
同じ問題が発生して、自分の解決方法を公開します。

簡単に言えば、
MySQLの設定ファイル、XOOPS用のDB、phpの設定ファイル、全部EUC対応に用意してからXOOPSをインストールすれば解決できました。

具体的には、以下の通りです。
■環境:
Redhat Linux Enterprise 4
Apache2.0.52
PHP4.3.9
MySQL4.1.20

■問題発生時文字コード
php:utf8
MySQLのDB:Latin1

■対応
 まず、phpについては、
phpの文字コードは元々Linuxのままでしたので、php.iniのmbstring周辺を日本語対応に修正し、その中でmbstring.internal_encoding = EUC-JPにしました。

 次にMySQLについては、
XOOPSをインストールする前に、XOOPS用のDBを用意するステップがありましたよね。最初は私がcreate database DB_NAMEだけで作成したので、MySQLのデフォルトでLatin1となってしまい、文字化けの元となってしまいました。その時は後でいろいろDBの文字コードを変更したりしましたが、全部失敗しました。
 そこで、新しくXOOPS用のDBを
create database DB_NAME character set ujisで作成しました。
もちろん、その前の対応で
MySQLの設定ファイル/etc/my.cnfも修正完了し、
default-character-set=ujisなどを入れ、MySQLにもEUCをサポートするようにしました。
 以上の準備が完了し、XOOPSを新しくインストールしたら、ちゃんと文字化けを解決しました。ちなみに、XOOPS CUBEとXOOPS2.0両方とも成功したので、バージョンの違いではないと分かりました。

 以上。ご参考になれれば幸いです。
Re: XOOPSで「?????」となる文字化け 
投稿者: iamcactus | 投稿日時: 2007/10/16 17:37
iamcactus
続きですが、人が悩むとき、情報が詳しければ詳しいほど求めると思いますので、
php.iniとmy.cnfを変更したところを公開します。

■php.iniの変更したところ

[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none;

==============ここまで=======================
■現在のmy.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-character-set=ujis
skip-character-set-client-handshake

# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
default-character-set=ujis

[mysqldump]
default-character-set=ujis

==============ここまで=======================

それでは。
Re: XOOPSで「?????」となる文字化け 
投稿者: carol0825 | 投稿日時: 2007/10/18 9:26
carol0825
> yoah様
> iamcactus様

ご回答ありがとうございます。

早速、アドバイスいただいた内容を確認してみます。

ありがとうございました。
Re: XOOPSで「?????」となる文字化け 
投稿者: m-oonaka2 | 投稿日時: 2009/7/8 9:07 | 親コメント: #17642
m-oonaka2

はじめまして、
サーバーはhetemlを私用しているのですが、heteml内でphp.iniの設定ができることを思い出し文字コードをEUCに

default_charset EUC-JP
mbstring.language Japanese
mbstring.internal_encoding EUC-JP
としたところ、ログイン、ログアウト時などの説明文の文字化けが直りました。
ここの質問とアドバイスに感謝感謝!

引用:
続きですが、人が悩むとき、情報が詳しければ詳しいほど求めると思いますので、
php.iniとmy.cnfを変更したところを公開します。

■php.iniの変更したところ

[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none;

==============ここまで=======================
■現在のmy.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-character-set=ujis
skip-character-set-client-handshake

# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
default-character-set=ujis

[mysqldump]
default-character-set=ujis

==============ここまで=======================

それでは。

    投票(0)

    新しいものから | 古いものから | RSS feed
     
    To Top