ホーム > フォーラム > 質問箱 > UTF-8でxoopsを遊ぼう

UTF-8でxoopsを遊ぼう
投稿者: hfrank | 投稿日時: 2005/12/6 14:04 | 閲覧: 20766回
hfrank
UTF-8でxoopsを遊ぼう
ごぞんじのように、世の中よく使われている日本語のエンコードは四種類がありまして、すなわち、JIS, Shift-JIS, EUC-JP,UTF-8. 現在のウェブアプリ中に後ろの三つはよく使うでしょう。自分現有のシステムと統合運用を含め、状況によって違うコードをつかう。*NIX系のOSは大抵EUC-JPをサポートするため、*NIX系のOS上はEUCを使ってシステム管理がしやすくなるでしょう。専用のエディターがなくても、日本語のシステムログが見れるし、ほかの仲間同士とのコミュニケーションもしやすい、楽です。Windowsなら、もちろん、Shift-Jisが一番人気でしょう。
しかし、グローバリゼーションのことを考えると、たとえば、29ヶ国語を支持するシステムを構築しようとする場合、やはりUTF-8を使ったら、一番楽になるでしょう。ここでXoopsをUTF-8で構築するのプロセスを記述したいと思います。

1. UTF-8でXoopsをエンコードする
Xoopsの日本本家(http://jp.xoops.org/)からダウンロードできるXoopsのパッケージはEUCでエンコードされたものしかない。
1) ダウンロードしてきたXoopsを解凍し、EUCファイルを用意しておく;
2) http://www.vector.co.jp/soft/win95/util/se326595.htmlから漢字変換ツールKanjiTranslaterを獲得しておく;
3) %Xoops_Home%\html\**\language\japanese\*.*のファイル全部UTF-8に変換する;主なフォルダは以下の三つになります:%Xoops_Home%\html\lanugage\japanese\*.*, %Xoops_Home%\html\install\language\japanese\*.*, %Xoops_Home%\html\modules\**\language\japanese\*.*;
2. %Xoops_Home%\html\install\language\japanese\install.phpファイルの最後の行は:
  define('_INSTALL_CHARSET','EUC-JP');
 になっている、これをUTF-8にしておく:
  define('_INSTALL_CHARSET','UTF-8');
3. %Xoops_Home%\html\language\japanese\global.phpのなかにCharsetを変更する
 define('_CHARSET', 'EUC-JP'); ->define('_CHARSET', 'UTF-8');
4.PHP.iniにエンコードを設定する、
PHPにUTF-8を使わせるのに、Php.iniファイルのmbstringにかんする設定を行います。主な点は以下のとおり:
  default_charset = "UTF-8" ;
  mbstring.language = Japanese
  mbstring.internal_encoding = UTF-8
  mbstring.http_input = auto
  mbstring.http_output = pass
  mbstring.detect_order = auto
  mbstring.substitute_character = none;
 下記の文字列はhttp://tsuttayo.sytes.net/php/char_trn/index.htmlから引用したものです。

5."php.iniの「mbstring.internal_encoding = 」の設定と、実際に保存してするスクリプトの文字コードの不一致によって文字化けします。
「mbstring.internal_encoding = EUC-JP」にしているなら、スクリプト・ファイルはEUCで保存してください。
「mbstring.internal_encoding = SJIS」にしているなら、スクリプト・ファイルはシフトJISで保存してください。
 Windowsでスクリプトを作っていると間違えやすいです。"

httpd.confの問題
掲示板で教えていただいた情報では、Redhat9にPHPをインストールすると文字化けすることがあるようです。

回避方法は2つあります。

/etc/httpd/conf/httpd.confに次の行を追加します。(初期値ではコメントアウトされているそうです)
DefaultLanguage ja
これで直ったとご報告をもらいました。
HTTPヘッダーへ直接、出力する方法です。たとえば、各スクリプトの先頭で以下のようにします。
@header('Content-Type: text/html; charset=Shift_JIS');
@header('Content-Language: ja');
なお、掲示板情報から以下も追加設定するとFedoraなどでの文字化けが解消するそうです(これは私は未確認です)。 AddDefaultCharset off
AddCharset EUC-JP .euc-jp
AddCharset shift_jis .sjis
AddCharset ISO-2022-JP .jis

以上です。
pkh


コメント(4)

新しいものから | 古いものから | ネスト表示 | RSS feed
Re: UTF-8でxoopsを遊ぼう 
投稿者: Nu-nrg | 投稿日時: 2005/12/6 16:08
Nu-nrg
hfrankさんはじめまして。

私も以前からUTF−8化をやっております。
XOOPS2.1では、文字コードそのまま、出力をUTF−8にできるようですが、現状ではお書きになられたような問題、改造が必要ですね〜


ぜひ一緒に「遊び」ましょう
私の書名欄のリンクより遊びに来てくださいまし
Re: UTF-8でxoopsを遊ぼう 
投稿者: hfrank | 投稿日時: 2005/12/6 22:20
hfrank
Nu-nrg さん、
はじめまして、
ご返信していただいてありがとうございます。
XOOPS2.1の日本語版をどこから入手できる、教えていただけますか?

今後もよろしくお願いしますね
Re: UTF-8でxoopsを遊ぼう 
投稿者: puchi | 投稿日時: 2005/12/6 22:55
puchi
引用:

XOOPS2.1の日本語版をどこから入手できる、教えていただけますか?


多分、XOOPS Cube 2.1(XOOPS 2.1-JP ?)という意味かと思いますが、現在開発中なので、2.1はリリースされておらず、開発中のものは、正常に動作することは保障されていないと思います。
それでもコードを見たいというのであれば、この公式の左メニューのドキュメント -> CVS に従って html以下に2.1.0のブランチのタグが打ってあるので、そこから入手することができるかと思います。
Re: UTF-8でxoopsを遊ぼう 
投稿者: Nu-nrg | 投稿日時: 2005/12/6 23:40
Nu-nrg
puchiさん、フォローすみません。m(__)m

略式記入しすぎました。
現在開発中のXOOPS Cube 2.1のことです。
CVS等示していただきお手数おかけしました。

    投票(0)

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