ホーム > フォーラム > 質問箱 > XCL2.1.5 > Legacy_2_1_5 + UTF-8 で ??の文字化けが解消しない

Legacy_2_1_5 + UTF-8 で ??の文字化けが解消しない
投稿者: drufyi | 投稿日時: 2008/11/17 1:12 | 閲覧: 20738回
drufyi
こんばんは。

約1日はまりましたが、色々試して解決しなかったので、ご教示頂けば幸いです。

OSはCentOS5.1です。

まずは、使用しているバージョンから、
・Package_Legacy_2_1_5.zip
・php-5.1.6-15
・php-mbstring-5.1.6-15
・php-mysql-5.1.6-15
・mysql-server-5.0.22-2.1.0.1
です。

------{/etc/my.cnf}-------

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set = utf8

[mysql.server]
user=mysql
basedir=/var/lib
default-character-set = utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set = utf8

[mysql]
default-character-set = utf8

------{/etc/php.ini} #変更点-------

default_charset = "auto"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass

となっています。


この状態で、XOOPSパッケージを解凍。
./extras/extra_languages/ja_utf8/html を
./html/配下へ上書きコピー。

./html/配下を /var/www/html/配下へコピー。
#httpdデフォルトルート。
#パーミッションを適切に設定。

mysqlにてxoopsで使用するデータベースを作成。

IEより、XOOPSへ接続し順次進めていく。
特にエラーはなし。

一通り設定が終わり、ログイン画面が出てくる際に、
"ログイン"や"ユーザ名" "パスワード"といった日本語は正しく表示されているが、
タイトル部分が ???? と文字化けしている。

ログイン後は成功するが、ログイン後も タイトルのような位置づけ部分が
???? と文字化けしている。

是非ご指摘願えれば幸いです。
不足点ございましたら追記致します。

何卒よろしくお願い致します。

コメント(4)

新しいものから | 古いものから | ネスト表示 | RSS feed
Re: Legacy_2_1_5 + UTF-8 で ??の文字化けが解消しない 
投稿者: hiro1173 | 投稿日時: 2008/11/18 0:26
hiro1173
この記事では、書かれていないので分からない部分がありますが、チェックしたらいいかな?と思ったのは2つあります。

1.インストールした文字コードは正しいのか?

インストールの最初の画面で文字コードを選択する画面があります。
ここで、「ja_utf8」を選択してインストールしているか?

管理画面で、 互換モジュールから全般設定をクリックして、使用言語を確認します。
「ja_utf8」になっていれば、OK。

2.MySQLの文字コードが正しいのか?

>mysqlにてxoopsで使用するデータベースを作成。

使用中のデータベースの中で、{prefix}_groupsのデータを確認してみます。

注;{prefix}は、データベースのプレフィックス名

SQL文なら、SELECT * FROM `{prefix}_groups` WHERE `groupid` =1 で、name が「管理者」になっていればOK
もし、文字化けしていたら、MySQLで使用するデータベースの文字コードが正しくないと思います。

作成したXOOPS用のデータベースの照合順序をutf8_unicode_ciになってるか?確認してみてください。

それか、「MySQL UTF 文字コード」などでぐぐると似たような結果が出ると思います。
Re: Legacy_2_1_5 + UTF-8 で ??の文字化けが解消しない 
投稿者: drufyi | 投稿日時: 2008/11/18 1:32 | 親コメント: #19307
drufyi
早速ありがとうございます。

文中に返答させて頂きます。

1.インストールした文字コードは正しいのか?

インストールの最初の画面で文字コードを選択する画面があります。
ここで、「ja_utf8」を選択してインストールしているか?

管理画面で、 互換モジュールから全般設定をクリックして、使用言語を確認します。
「ja_utf8」になっていれば、OK。


 こちらに関しては確認し、ja_utf8でインストールを行いました。


2.MySQLの文字コードが正しいのか?

SQL文なら、SELECT * FROM `{prefix}_groups` WHERE `groupid` =1 で、name が「管理者」になっていればOK
もし、文字化けしていたら、MySQLで使用するデータベースの文字コードが正しくないと思います。

 こちらが駄目でした。

 結果は、下記でした。
 +---------+--------+-------------+------------+
 | groupid | name | description | group_type |
 +---------+--------+-------------+------------+
 | 1 | ?????? | ?????????? | Admin |
 +---------+--------+-------------+------------+

データベースの文字コードとは、my.cnf 以外に設定箇所があるのでしょうか?
Re: Legacy_2_1_5 + UTF-8 で ??の文字化けが解消しない 
投稿者: hiro1173 | 投稿日時: 2008/11/18 2:12 | 親コメント: #19308
hiro1173

データベースの文字コードとは、my.cnf 以外に設定箇所があるのでしょうか?


もしかするとデータベースの文字コードの設定がおかしいかも知れませんね。

SQL文が実行できるなら、SHOW CREATE DATABASE データベース名 ;を実行してみてください。

データベース名は、mainfile.php内のXOOPS_DB_NAMEで定義されている名前
(例)define('XOOPS_DB_NAME', 'exaplme_db');

データベースを作成した時に設定した内容が表示されます。
CREATE DATABASE `exaplme_db` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */

多分、データベースの照合順序が、正しく設定されていないと思う。
私の場合は、データベースを作成する時に照合順序も指定して作成するようにしています。

MySQLに関しては、以下のURLでチェックするといいと思います。
http://dev.mysql.com/doc/refman/4.1/ja/charset-defaults.html
Re: Legacy_2_1_5 + UTF-8 で ??の文字化けが解消しない 
投稿者: Marijuana | 投稿日時: 2008/11/18 9:05 | 親コメント: #19308
Marijuana
このスレッドのXOOPS環境チェックで確認してみてください。

#MySQLとApacheの再起動しました?

    投票(0)

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