XOOPS2.0.16aをUTF-8化

いまさら、XOOPS2.0.16aと思われるかもしれないんですが、なかなか新しいのに乗せ返させていただけるチャンスがないので・・・・・・。

参考にさせていただいたのは、
XOOPS 文字コードを utf-8 に変更しよう。 (@【独習】Ajax,CSS,XOOPSカスタマイズ備忘録 | Code.Lover

とりあえず、メモメモ。(2010.5.20)

これを元に、UTF-8でインストール。
その後、管理画面から、日本語を投稿すると、文字化けっていうか、データベースに空白が入る。
逆にデータベースに直で日本語を書くと文字化けする。

そこで、文字化けをキーワードに調べていると、このような記事が
データベースの文字化け(@XOOPS CUBE 日本サイト

XOOPS/class/database/mysqldatabase.php 90行目あたり

function connect($selectdb = true)
{
(略)
ツꀀ }
ツꀀ mysql_query(“SET NAMES ujis”, $this->conn); // これを追加
ツꀀ return true;
}

を参考に、

mysql_query(“SET NAMES utf8“, $this->conn);

にしたらうまくいきました。
(2010.5.25)

しかし、その後、データの「~」が「?」になることが判明。
データベースに直で入れても、「~」は「?」になります。
フォームから入れてもそう。
照会順序がujis_japanese_ciとなっているのを、utf8_general_ciにするとよいというのを下記記事に見つけました。

波ダッシュ 全角チルダが?に文字化け Unicode(@ドロップシッピング by リアルマーケットブログ

phpmyadminを使用して、照会順序を変更していたら、bulletinのテーブルだけ拒否されました。
ので、bulletineの2つのテーブルをエクスポートし、テーブルを削除し、エクスポートしたクエリ分でテーブルを作成する部分を以下のように変更。

`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

「hometext」と「bodytext」も同様にしました。ちょっと無理やり感たっぷりなのですが、一応これでデータもちゃんと保存できているみたいムム。

ちなみに、utf8でインストールした時点で、照会順序がujis_japanese_ciとなっていたから、私がインストールしなおしている途中に何かした結果ではなさそうです・・・・・・うーん。

(2010.5.28)


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です