- 締切済み
文字コード変換プログラムについて
c言語でfgetcでファイルを読み込みをiconv関数を使用して文字コードを変換したいのですが、サンプルソースを知っている方、もしくはソース知っている方教えていただけますか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- taka37777
- ベストアンサー率30% (166/544)
fgetsではなく、fgetcを使っても良いですが、文字コードを変換する際全角文字は2バイトになります。ですから一行単位で読み込むなどしてからiconvを使って変換しないと、文字化けすると思います。 http://www9.plala.or.jp/sgwr-t/lib/fgetc.html
- taka37777
- ベストアンサー率30% (166/544)
Wikiにiconvの説明とサンプルが掲載されているようです。 http://ja.wikipedia.org/wiki/Iconv#.E8.87.AA.E4.BD.9C.E3.83.97.E3.83.AD.E3.82.B0.E3.83.A9.E3.83.A0.E3.81.8B.E3.82.89iconv.E3.83.A9.E3.82.A4.E3.83.96.E3.83.A9.E3.83.AA.E3.82.92.E4.BD.BF.E7.94.A8.E3.81.97.E5.A4.89.E6.8F.9B.E3.81.99.E3.82.8B.E5.A0.B4.E5.90.88
お礼
ありがとうございます。すいません、fgetsではなく、fgetcを使って行いたいのですが、たとえばWIKIのソースをどのように変えればよいのでしょうか? p_src = s_src; p_dst = s_dst; n_src = strlen(s_src); n_dst = S_SIZE-1; while(0 < n_src){ iconv(icd, &p_src, &n_src, &p_dst, &n_dst); } 特にこのあたりをどうにかすればよいのでしょうか?
お礼
ありがとうございます。そうですか・・・、そのような仕組があるのですね ・・。勉強になりました。