OKUMURA N. Shin-ya
oku.n****@dream*****
2005年 10月 8日 (土) 01:29:52 JST
おくむら@練馬です。 返信が遅くなって申し訳ありません。 _o_ On Mon, Sep 26, 2005 at 11:36:01PM +0900, Koji Arai wrote: > とりあえず、今設定しているゴールって、euc や sjis や > eucJP-ms や cp932 などなど(iconv()がサポートしている)任意の > コードを指定可能にするってことでいいのですよね? 基本的にはそういう発想です。 但し、iconv()の積極的な使用で不便になっては本末転倒ですので 以下のような事を考えていました。 (1) 基本的に文字コード変換は iconv() を使用したい。 (2) 内部 encoding は LHa の伝統と格式に則れば cp932。 cp932 を選択できない環境ならば sjis-x0213 あたり? sjis-x0213 すら選択不可能ならば sjis。 しかし一口に「Shift-JIS」と言っても、 ・昔の Solaris では PCK ・libiconv では cp932 ・少し前の glibc では sjis、最近のものなら cp932 ・他の HP-UX とか AIX とかはどうなってるのか不明... これらのうち、どの encoding 名を採用すべきか? できれば configure で決定したいが、実行時に決定するという 選択肢もありかもしれない。 なお、内部 encoding をユーザが明示的に指定したのであれば 原則としてそれに従うべきだろうが、UTF-16/32 のような \0 を 文字列中に含んでしまう encoding は蹴りたいところ。 (3) 外部 encoding は現在の locale での nl_langinfo(CODESET) の戻り値を仮定しても良さそう(根拠レス)。 但し、nl_langinfo() は SUSv2 で出現した API っぽいので 果たして可搬性があると仮定していいのかどうか? 徒然なるままに自分の考えを並べてみました。 ご意見や、その他なんでも歓迎いたします。 -- OKUMURA N. Shin-ya (oku.n****@dream*****) if (it == misfeature && it != bug) it = bug;