[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[kagemai-users:0456] Re: Debian で統計グラフの凡例が文字化けする
佐々木です。
<uoefd3frd.wl@xxxxxxxxxxxxxxxxxx> の、
"[kagemai-users:0453] Re: Debian で統計グラフの凡例が文字化けする" において、
"FUKUOKA Tomoyuki <fukuoka@xxxxxxxxxxxxx>"さんは書きました:
> | > もし、EUC-JP、UTF-8 を変更して確認したときに、キャッシュを意識
> | > していなかった場合には、「全体の設定」で、"use_html_cache" を
> | > false に設定してから試してみてください。
> |
> | ご意見いただいた通り、use_html_cache を false に変更しましたが
> | 文字化けが発生しています。
>
> 影舞のコードをながめながら原因を考えてみたんですが、GD を
> -DJISX0208 なしでコンパイルして、iconv の拡張ライブラリが
> 入っていない場合には、文字化けが起こりそうです。
>
> GD をコンパイルするときに、-DJISX0208 は指定したでしょうか、
> それともしなかったでしょうか。
指定しました。
> また、
>
> $ ruby -e 'require "iconv"'
>
> とするとどうなるでしょう。
>
以下のエラーが出ました。
-e:1:in `require': No such file to load -- iconv (LoadError)
from -e:1
> GD を-DJISX0208 なしでコンパイルしていて、require 'iconv' が
> エラーになっている場合には、GD を -DJISX0208 つきでコンパイル
> するか、iconv の拡張ライブラリをいれてやれば解決すると思います。
> # ruby 1.8.2 なので、iconv 拡張ライブラリが入っていないという
> # のはなさそうな気もしますけど。
>
上記のエラーメッセージより、iconv が入っていないと判断し、
libiconv-ruby1.8 を apt-get install しました。
その後、gd_charset を UTF-8 に指定すると、文字化けは起きなく
なりました。
> 上の条件にあたってない場合は、Rub/GDでの文字化けをテスト
> するための簡単な CGI を書いてみたので、これを影舞と同じ
> 環境で動かしてみてください。
>
> http://www.daifukuya.com/archive/kagemai/gdtest/
>
> gdtest.cgi と gdtest.rb を同じディレクトリに EUC で保存して、
> gdtest.cgi 中の font_name という変数を使用する TrueType フォント
> のパスに修正してください。
>
> GD が -DJISX0208 オプションつきでコンパイルされていなければ、
> 上の URL にある result-utf8.png というファイルと同じような
> 結果になります。
>
> GD が -DJISX0208 オプションつきでコンパイルされていれば、
> JIS, EUC, SJIS は文字化けなしで、UTF-8 だけが文字化け
> するという結果になると思います。
>
> もし、文字化けなしで正常に表示されるものがなければ、GD を
> コンパイルするときの -DJISX0208 の有無を変更して試してみて
> ください。
>
テスト CGI の提供ありがとうございます。
一つ気になる点がありましたので報告致します。
テスト CGI を私の環境で試してみましたが、-DJISX0208 の有無によらず、
result-utf8.png と同じ結果(EUC-JP, JIS, SJIS が文字化け)と
なりました。
影舞でも、-DJISX0208 の有無によらず、gd_charset の設定で、
・UTF-8 を指定したときは文字化けしない
・EUC-JP を指定したときは文字化けする
という状態です。(他の環境不備があるかもしれませんが・・・)
正しい挙動は
・-DJISX0208 オプション無しの場合、UTF-8 を指定すると文字化けせず、
EUC-JP を指定すると文字化けする
・-DJISX0208 オプション有りの場合、EUC-JP を指定すると文字化けせず、
UTF-8 を指定すると文字化けする
と思ってるのですが、この解釈で合ってますでしょうか?
とはいえ、文字化けが起きなくなる方法は見つかりましたので、
当面は UTF-8 を指定する事で対応したいと思います。
ご回答ありがとうございました。今後ともよろしくお願い致します。
---------------------------------
佐々木大輔 (Daisuke Sasaki)
sasaki@xxxxxxxxxxxxxxxxxxxxxx