BACK ]
インターネットやパソコンに関する蘊蓄集(?)

MySQLで多言語混在データベースを利用する
 私のホームページはウィルネットのホスティングサービスを使っています。いろいろなコースがあって、値段もお手軽なものから、それなりに高価なものまで、既望に合わせて選べます。私はUNIX-無制限のコースですが、このコースではMySQLとPHPが利用できます。バージョンは「MySQL 3.23.43」「PHP 4.1.2」です。実際にMySQLやPHPの多言語対応がどんなものなのか、詳しいことはわかりません。ただ、以下のような手順で多言語データベースが構築できましたので、それについて書きます。
 PHPのスクリプトは、インターネット上やPHP関係の書籍の附録CD-ROMについているものを利用しました。最新刊やもっと役に立つ(わかりやすい)書籍があるかもしれませんが、私には以下のものが非常に便利でした。『はじめてのPHPプログラミング』『PHPでWebアプリケーションを作ろう』『PHPによるWebアプリケーションスーパーサンプル』『今日から使えるPHP4サンプル集』『標準MySQL』などです。これらに収録されているサンプルから自分の作りたいものに合うものを探しそれを改変しました。
 具体的にはPHPスクリプトのファイル、HTMLファイルを適当なエディタで開きます。適当と書きましたが、UTF-8形式で保存しますので、それに対応しているエディタでないといけません。私はほとんどシェアウェアのEmEditorを使っています。ファイルを開いたら、まずUTF-8形式で保存してしまいます。この時、もとのファイルは残しておいた方がよいでしょう。ですから別の場所や別のファイル名で保存します。次にヘッダなどで文字コードを設定している箇所を検索し、それらをすべてUTF-8に書き直します。HTMLファイルなどの場合は見つけやすいでしょうが、PHPスクリプトファイルの中にも記述がある場合がありますので、丹念に見つけてください。なおUTF-8形式で保存する時には「Unicodeサイン(BOM)を付ける」のチェックを外しておきます。
 以上の準備が終わったところでサーバーにアップします。私の借りているサーバーはCGIスクリプトなどを置く場所とHTMLファイルや画像ファイルなどを置く場所が分かれているのですが、PHPの場合は同じところに置くことが出来ますので設置も簡単です。PHPスクリプトなどはASCII形式でアップロードしてください。
 以上の後でも前でも構いませんが、PHPファイルの中には接続するMySQLに関する設定がありますので、それに合わせたテーブルをTelnetでサーバーに接続してMySQLのコマンドを使い作成してください。通常はコマンドベースでデータを入力したりもしますが、多言語の場合これではうまくいきません(私のやり方が悪かったのかも…汗)。データ本体はMS-Accessで作っておきます。OfficeXP以降はAccessも多言語に対応しましたので、「MS-Accessの多言語テーブルを利用する」に従ってデータを作成します。これもTelnetを使ってサーバーに転送し、MySQLのコマンドでデータベースに放り込みます。この時、カラムのサイズ(文字数)などが間違っているとエラーが出たりします。多言語の場合はカラムの文字数を少し多めに設定しておくとよいでしょう。
 基本的には以上で終わりですので、ブラウザから閲覧してみてください。検索などがうまくできれば設置は成功です。ただ多言語の場合、文字がうまく表示できないことも多々あります。ここから先はユーザの環境に左右されますので百パーセントというわけにはいきませんが、スタイルシートを使ってフォントを指定しておくと多少は緩和されます。例えば、中国語の簡体字を表示する部分にはフォントに「MS Song」「MS Hei」などを指定しておくわけです。様々な言語が混在していますので、Windows環境の場合、まずは「Arial Unicode MS」「Luida Sans Unicode」などを指定しておくとよいでしょう。これらのフォントはWindowsやMS-Officeに標準で就いているフォントですので、比較的多くの人の環境でフォローされているでしょう。Macintoshにも同様にOS Xなどでは「STSong」などのフォントが入っていると思います。これらUnicodeに対応したフォントをスタイルシートを使って指定しておけば、ある程度文字化けは解消されるでしょう。
 このようにして作ったデータベースが「多言語あいさつ集」「世界の国・首都・通貨」「元素記号表」などです。