舞鳴BBSテスト版 注:書き込んだ内容が勝手に変換される場合があります(笑)
新規の話題を投稿すりゅトップページに戻りゅ表掲示板に行きゅ

Back to normal view.

i-昆布

投稿者:あちゃいん 投稿日:2005年06月08日 09時53分10秒

>う〜みゅ,大正解ですねぇ.

う〜みゅ,さすがオレ(笑)

えと,畠山さんのlibiconvバイナリって1.4でしたよにゃ.
最新のlibiconv 1.9.2を拾ってきてChangelogを見てみたんですけど,
「//TRANSLIT」の対応は2000/11/18つまりlibiconv 1.4のリリース後に
盛り込まれてるにゃ.つまりLynxはそれ以降のlibiconvを想定していると.

にゃので対策としては
1. 新しいlibiconvを自分でビルドして使う
2. 「//TRANSLIT」を削って古いlibiconvでも使えるようにする
のいずれかににゃると思いますにゃ.

あとlibiconv/2関係でUnicodeを扱うときに注意しにゃいといけにゃい点として,
変換できにゃい字にぶち当たったにゃ場合の配慮が必要にゃことだにゃ〜.
丸付き数字にゃどはもちろん,「~」にゃども変換に失敗しますにゃ.
# 畠山さんのqp 2.4における変更履歴を参照
この場合iconv()はその手前の文字までを変換したところで中断され,
関数値として-1を返すようだにゃ〜.にゃので,畠山さんがqpで採ったにゃ作戦のように

rc = iconv(cd, &pin, &inleft, &pout, &outleft);

の部分を

while (*pin != '\0') { /* 文字列の終端までiconvを繰り返す */
  if (iconv(cd, &pin, &inleft, &pout, &outleft) == -1) {
    /* 変換不可能にゃ文字はそのままコピー */
    *pout++ = *pin++ ;
    inleft -= 1 ;
    outleft -= 1 ;
  }
}

のようにしてやる必要があるようにゃ気がしますにゃ.


Back to normal view.
MyNARI BBS version 1.0.1 (C)2003-2007 Achain