yomi-search の文字コードは Shift-jis ですが、これをutf-8 に変更する覚書です。
十分なテストは行なっていないので、参考程度&自己責任でお願いします。

 

 

 

サンプル

Yomi-Search UTF-8

上のアマゾンバナーがヘッダスペース、下のA8バナーがフッタスペースの場所になります。

新規登録ができます。
動作テストも兼ねていますので、ご自由に登録・修正を行なってください。

アクセスランキングのサンプル

  • ネジ式メモに投票 → 投票
  • googleに投票 → 投票
  • yahooに投票 → 投票

 

比較用の通常版Yomi-Search

 

※エラーが出る場合は教えていただけると助かります。

 

準備

utf-8に対応したperlライブラリを用意します。
今回は jacode.pl を使用しますので、こちらのサイトから「jacode.pl」をダウンロードしてください。

jacode.plは、yomi-searchに標準で入っているjcode.plの上位互換になります。
多分、これを使うのが一番簡単です。

 

カスタマイズ

「jacode.pl」の設置

  1. 「pl」フォルダに行き、「jcode.pl」を別の場所に退避させます(今後使う予定はないので削除でもかまいませんが、念のため保存をオススメします)
  2. 同じ「pl」フォルダに「jacode.pl」を設置します。
  3. 「jacode.pl」の動作チェックをします。
     

    • 「jacode.pl」を「jcode.pl」にリネームし、yomi-searchが今まで通り動いていることを確認してください。
      動かない場合は「jacode.pl」が破損していますので、再度ダウンロードをしてください。
    • 問題なく動いていることを確認をしたら、「jacode.pl」に名前を戻してください。特にこだわりなどがなければ、「jcode.pl」のままでもかまいません。(ファイル名を「jcode.pl」にした場合、次の「4」の変更は必要ありません)
    •  

  4. ファイル「admin.cgi」「rank.cgi」「regist_ys.cgi」「search.cgi」「yomi.cgi」の変更をします(「jacode.pl」のファイル名を「jcode.pl」にした場合は不要です)

    • 8行目あたり
      require 'pl/jcode.pl'

      require 'pl/jacode.pl'

      に変更。

  5. 変更後、yomi-searchが今までどおり問題なく動いていることを確認してください(この段階ではまだshift-jisで動作しています)。

 

ファイルをutf-8に変更する

  1. Vector(ベクター)などにある文字コード変換ツールで、拡張子が「.cgi」「.html」「.css」「.log」のファイル(ライブラリとgif以外)をすべてutf-8(BOM無し)に変換します。

 

ファイルの中身をutf-8に変更する

shift_jis にあわせて記述されている内容を utf-8 に変更していきます。最低限の変更のみですので、正確なマークアップとは程遠いです。

変更するファイルが多いので、ここからは変更ワードのみ記載していきます。一括置換ソフトなどを使用し変更していってください。

変更ワード

<!-- あ -->
  • 変更箇所は40件。
  • すべて削除
  • これはシフトJISの文字化け対策(シフトJISの「あ(82A0)」は、JISにもEUCにも存在しないコード)


変更ワード

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
  • 変更箇所は10件
  • すべて削除


変更ワード

<head>
上記変更ワードを次に置換えてください。

<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  • 変更箇所は51件(大文字小文字合計)
  • 大文字表記と小文字表記が混在してますので注意してください
  • 「pl/KCatch.pm」は変更しないでください。


その他の変更

template/admin/config.html
162行目

if(&check_symlink){$PR_mes_symlink="symlinkロックを使用可能\";}
の「可能」の後ろの「¥」を削除

if(&check_symlink){$PR_mes_symlink="symlinkロックを使用可能";}
これを削除しないと管理室の「2.環境設定」のページが真っ白になります。


admin.cgi」、「rank.cgi」、「search.cgi」、「yomi.cgi」、「regist_ys.cgi」
変更箇所はすべて同じです。
	&jcode'convert(*value,'sjis');
	&jcode'convert(*name,'sjis'); $FORM{$name} = $value;
これを
    &jcode'convert(*value,'utf8');
    &jcode'convert(*name,'utf8'); $FORM{$name} = $value;
に変更(sjisをutf8に変更)

以上です。

メモ

  • 「pl/temp.cgi」の1909行目
    sub z2h{
    #全角英数字を半角英数字に変換(&z2h)
    #文字コードはsjis
    

    どうやら未使用のようなのでここは修正せず保留



  • yomi-searchからyahooやgoogleなどのサイトを検索すると(検索結果がが0のときにでるやつ)エラーや文字化けを起こす場合があります。
    でもこれはオリジナルのもそうなので、多分向こうのサイトの検索方法が変わったためだと思います。
    修正するなら pl/meta_ys.cgi のあたり