2005年5月 9日

検索窓とUTF-8

このサイト「岩野忠昭のお部屋」トップページやや下よりの処に、中国関連のサイトや漢籍を検索するフォームを取り付けました。今のところ使えるのは 「Google」の中国と台湾、「Yahoo!」の中国、台湾、香港、京都大学人文科学研究所作成の「東洋学文献類目」、全国主要大学横断の「漢籍データ ベース」、それに「excite」の中日、日中辞典です。

これらは、CGIに定義を書き込んで、そのCGIからそれぞれのサーチエンジンなどに飛ぶような仕組みなんですが、上記のサイトはどれもUTF-8で検索するサイトです。

なので、検索する場合もUTF-8のページから検索しないと文字化けしてしまって、うまく検索できません。当初、あたしのサイトのトップページの文 字コードはシフトJISだったのですが、これでは検索がうまくいきません。そこで思い切ってトップページをUTF-8に切り替えてしまいました。

ただ、世の中には(日本には?)、シフトJISで検索しないとだめなサーチエンジンも多く、さて困ってしまいました。一番簡単なのは <iframe>タグを使って、検索の部分だけ別に作っておいて呼び出すという方法です。これはこれで便利であり、ほぼどんな文字コードでもいけるんです が、あたしのサイトのトップページはスタイルシートの切替ができるようにしていまして、背景色とも文字色などが、<iframe>の部分だけ浮いてしまい かねません。

<iframe>で呼び出したページにもスタイルシート切替を付ければいいんですが、それはちょっとかなり面倒ですし、違和感なく収まりそうにありません。そこで<iframe>を使う方法はやめました。

とは言っても、<iframe>自体は、例えばアマゾンのリンクや、ブログの新着を掲載している部分など二使っています。特に二つのブログの新着の部分は、背景色が薄黄色に固定してしまっているので、スタイルシートによってはおかしな感じですよね。目下の悩みの種です。

それと、話は検索窓に戻りますが、あたしのスキルが足りないんでしょう。うまく検索できないサーチエンジンもあります。たぶんCGIの定義の書き方が間違っているんだと思いますけど、これももっとPerlの勉強をするしか解決の方法はないのでしょう(汗)。

2005年5月 3日

やっぱりPHPに......

この連休の前半戦で作った「常用漢字ピンイン調べ」ですが、一部の漢字がきちんと検索できないという不具合がありました。いろいろやってみたんですが、理由がわかりませんでした。そこで思い切ってMySQLとPHPを使ったものに変更してしまいました。

ただ、それでもなんか変な感じで、うまく動かなかったので、結局UTF-8で動かすようにしたところ、うまく動作するようになりました。まずはメデタシ、メデタシです。

携帯電話用のページも同様です。UTF-8なんですが、FOMAからは問題なく使えてるようです。

2005年5月 1日

「友」が「庸」?

「中国語学習室」の「WEB版・自作辞典」に「常用漢字ピンイン調べ」というものをアップしました。同コーナーの「称謂辞典」で、「名前の中国語読 みを教えてください」という質問が多いので、だったら簡単に自分で調べられるようにすればいいじゃん、と思って作ったものです。

CGI自体は単なるデータ検索のスクリプトをカスタマイズしただけのもので、データもエクセルで作ったタブ区切りテキストです。携帯からも使えるようにシフトJISです。

ところがいざ検索をしてみるとおかしな結果がヒットしてしまいます。「友」と検索すると「庸」が、「有」を検索すると「様」がといった具合に、今の ところピンインの「you」のものの検索結果がおかしくなっています。全部が全部おかしいわけではないようですし、「you」以外ではどうなのか検証して ませんが、とにかくこういった不正動作が起こります。

この検索コーナーは、恐らく中国語をあまりわかっていない人が使うだろうと思われるので、こんな初歩的な誤りはなんとかしたいのですが、タブ区切り データには問題はないようなので、発生理由がわかりません。「表」とかが文字化けするというのは聞いたことがありますが、そんなのと関係しているのでしょ うか?

しばらくは、試行錯誤が続きそうです。

2005年4月 6日

中国語対応のCGI

中国語に対応したCGIを、自分のホームページ設置したいと思っている方って多いと思います。かく言う私もその一人です。CGIを設置したいと思っ ている方であれば、「中国語対応となるとGBコードだよな」とか、「いや台湾だったらBig5だよ」ということは既に自明のことと思います。

でも、私たち日本人が作る(使う)となると、中国語だけが使えるようなCGIよりも、日本語も混在できるものの方が便利ではないでしょうか。となる とCGIは必然的にUnicodeのものとなります。それってどこにあるの、と思うかもしれませんが、ネット上で無料配布されている無数のCGIを改造す ればいいのです。ある程度の知識があれば、具体的言うなら、既製のCGIをカスタマイズしたことがあるなら、Unicode化もそれほど難しいわけではあ りません。

CGIスクリプトのUnicode化は、私も「旧・電脳文献」のコーナーで紹介しています。より詳しくは

電脳瓦崗寨

をご覧ください。上記サイトの「中文電脳」コーナーに「UTF-8で簡単多言語CGI 」という文章があり、懇切丁寧にやり方を書いてくれています。

また設置しやすいスクリプトを提供されている「KENT WEB」さんのCGIを中国語化したスクリプトを配布されているサイトもあります。これを使わせてもらうというのも、まずはよいのではないでしょうか。

もちろん日本人がCGIを配布しているように、中国でも無料スクリプトの配布サイトがあります。【中華篇】でそのようなサイトのいくつかを紹介していますので、興味のある方はご覧ください。