UTF-8でxoopsを遊ぼう
投稿者: hfrank | 投稿日時: 2005/12/6 14:04 | 閲覧: 22746回
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
ごぞんじのように、世の中よく使われている日本語のエンコードは四種類がありまして、すなわち、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)
新しいものから |
古いものから |
ネスト表示 |

Re: UTF-8でxoopsを遊ぼう
Re: UTF-8でxoopsを遊ぼう
Re: UTF-8でxoopsを遊ぼう
Re: UTF-8でxoopsを遊ぼう