[Armadillo:08625] Re: ARMADILLO-440でiconvを使う
SAITOH akinori
email@hidden
2013年 2月 22日 (金) 10:28:32 JST
齊藤と申します
(2013/02/21 19:22), watanabe wrote:
> 渡辺と申します。
>
> シフトJISとUnicodeの変換を行いたくてiconvを使おうとしていますが、
> うまく行きません。
>
> iconv_t ic = iconv_open("UTF-8", "SJIS");
> memcpy( in, sjis, sizeof(sjis) );
> rtn = iconv( ic, &in, &in_size, &out, &out_size );
> iconv_close(ic);
とりあえず if(rtn==-1)perror("iconv");を入れてみて
ERRNOが何になってるか確認してはどうでしょうか
マニュアルには
「4. 出力バッファーに次の変換された文字列のための空きがない場合。 この
場合、 errno が E2BIG に設定され、 (size_t) -1 が返される。 」とあります.
・out_sizeの値が小さすぎる
・out_sizeに値が設定されていないままiconvを呼び出している
あたりが疑われますが・・・
メールに書かれたプログラム断片にはin_sizeの値設定も
書かれて居ないのが気になります
--
齊藤明紀 email@hidden
armadillo メーリングリストの案内