[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[kagemai-users:0460] Re: Debian で統計グラフの凡例が文字化けする
福岡です。
Daisuke Sasaki san wrote:
| 上記のエラーメッセージより、iconv が入っていないと判断し、
| libiconv-ruby1.8 を apt-get install しました。
| その後、gd_charset を UTF-8 に指定すると、文字化けは起きなく
| なりました。
とりあえず解決したようで、よかったです。
現在の影舞では iconv の拡張ライブラリがなくてもエラーには
ならないようになっているんですが、gd_charset に UTF-8 が
指定されていてもエラーにしていないのが問題をわかりにくく
していましたね。
ちなみに、iconv はグラフ生成以外では、日本語ファイル名の添付
ファイルをダウンロードするときに Web ブラウザに応じて文字コード
を変換したり、RSS を UTF-8 で生成したりするのに使われます。
# iconv がなければ文字コード変換をせずに動きます。
| テスト CGI を私の環境で試してみましたが、-DJISX0208 の有無によらず、
| result-utf8.png と同じ結果(EUC-JP, JIS, SJIS が文字化け)と
| なりました。
(snip)
| 正しい挙動は
| ・-DJISX0208 オプション無しの場合、UTF-8 を指定すると文字化けせず、
| EUC-JP を指定すると文字化けする
| ・-DJISX0208 オプション有りの場合、EUC-JP を指定すると文字化けせず、
| UTF-8 を指定すると文字化けする
| と思ってるのですが、この解釈で合ってますでしょうか?
あっています。
挙動からは、どこかにあらかじめ存在していた (-DJISX0208 なしの) GD を
Ruby/GD は使用していて、-DJISX0208 をつけてコンパイルした GD は使われ
ていないような気がします。
Ruby/GD の GD.so を ldd でみてみると、期待している libgd.so を
使っているかわかると思います。
また、テストCGIでの画像の生成は gdtest.rb で行っているのですが、
gdtest.rb は単体でも動作するので、 CGI 環境ではなく単体で動かして
みれば、CGI での問題かどうか(<BTS:186>と同じようなことが起こって
いるのかどうか)を切り分けれます。
$ ruby gdtest.rb > result.png
# gdtest.rb 中の font_name を編集してやる必要があります。
まあ、文字化けは解決したようなので、あまり気にしなくても
いいかもしれませんが :-)
--
福岡ともゆき <fukuoka@xxxxxxxxxxxxx>
http://www.daifukuya.com/