Rubyで書かれたWiki Hiki 1.0.0 の UTF-8 の問題
新城@筑波大学です。こんにちは。
久しぶりに 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 だし、こちらに揃えるか。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 情報工学 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735