新城@筑波大学です。こんにちは。

久しぶりに Hiki をインストールしようとしたら、1.0.0 というバージョンが
出ていたので、試しました。

    http://hikiwiki.org/ja/

内部の文字コードが UTF-8 になってました。エラーが出るということがありま
した。(コマンドラインから実行すると動くのが CGI だとエラーになるという、
少し不思議な現象もありました。)

----------------------------------------------------------------------
Hiki Error
hiki/messages/ja.rb:9: syntax error, unexpected tIDENTIFIER, expecting kEND
    def msg_create; '新規作成' end
...
hiki/messages/ja.rb:11: Invalid char `\233' in expression
----------------------------------------------------------------------

ruby -Ku のオプションも効かないなあと思ったら、こんなコードが入っていま
した。

hiki.cgi:
----------------------------------------------------------------------
#!/usr/bin/env ruby
# $Id: hiki.cgi,v 1.36 2008-01-24 15:42:11 znz Exp $
...

begin
  # FIXME encoding can be different (eg. iso-8859-1 in
  # hikiconf.rb.sample.en).
  Encoding.default_external = 'utf-8'
rescue NameError
  $KCODE = 'e'
end
----------------------------------------------------------------------

こんな所で $KCODE が 'e' (EUC)になっていました。これを 'u' ("UTF-8") に
したら、文字コードの問題はなくなりました。でもなんで 'e' なんだろう。

あと、docdiff が無いと言われたので、gem でインストールして hiki.cgi に
require 'rubygems' を加えました。まとめるとこんな感じ。
----------------------------------------------------------------------
$ diff hiki.cgi~ hiki.cgi
4a5,6
> require 'rubygems'
> 
11c13,14
<   $KCODE = 'e'
---
> # $KCODE = 'e'
>   $KCODE = 'u'
$ 
----------------------------------------------------------------------

CentOS 6.5 の ruby が 1.8 というのは古いのが問題なのか。MacOSX の方は、
ruby 2.0.0p247 だし、こちらに揃えるか。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 情報工学        \\