〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
2011/3/4(金)18:29 - 竹の - nolm01.iee.niit.ac.jp - 1825 hit(s)
以前 2438 番の記事で、gdlib に関する問題を書きました。
Unix なら gdlib, gnuplot をコンパイルする人が (多くの場合)
ユーザに近いので、それなりに対応が可能ですが、MS-Windows の
ようなバイナリ配布だと、それが、
(a) default の gdlib (日本語は UTF-8 のみ受け付ける) を使用
(b) -DJISX0208 つきの gdlib を使用
のどちらのバイナリなのかを知った上で、png/gif/jpeg terminal
を使用する場合のスクリプトの漢字コードを選ばないといけないわ
けで、それを解消するには gdlib 側の対応が必要である、と 2438
番の記事では書きました。
しかし考えてみれば、バイナリ作成者はどちらの gdlib であるか
を知っているわけですから、コンパイル時に以下のどちらかをフラ
グで選ぶ等で、iconv ライブラリと set encoding 指定でそれなり
に解消する方法があることに気がつきました。
(a) を使う場合:
set encoding sjis の場合は、8bit 文字列を Shift_JIS とみなし
iconv で UTF-8 に変換して通す、それ以外はそのまま通す
(b) を使う場合:
set encoding utf8 の場合は、8bit 文字列を UTF-8 とみなし
iconv で Shift_JIS に変換して通す、それ以外はそのまま通す
これで十分かどうかは議論のあるところだと思いますが、とりあえ
ずそのようなパッチを作ってみました。あくまで、MS-Windows 用
です。
http://takeno.iee.niit.ac.jp/~shige/unix/gnuplot/data/gd-iconv-1.diff
gd.trm の 330 行目付近にフラグがあります。
#define HAVE_ICONV 1 <== iconv を使う場合に指定
#define USE_SJIS 1 <== このパッチを有効にする
#define JIS_GDLIB 1 <== (a) の場合は 0, (b) の場合は 1 に
のようにします。iconv.h が必要ですし、iconv ライブラリをリン
クする必要があります (松岡版は既にリンクされているよう)。
〔ツリー構成〕
【2486】 gd.trm の iconv 対応 2011/3/4(金)18:29 竹の (1520) |
〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
※ 『クリックポイント』とは一覧上から読み始めた地点を指し、ツリー上の記事を巡回しても、その位置に戻ることができます.