iconvライブラリ
iconvで指定できるコード名を調べる
iconv -lで確認する
CPPでiconvを使う
- ソース
もっときれいに書けそう
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<iconv.h> main() { // iconvを開く iconv_t it = iconv_open("UTF-16", "SHIFT_JIS"); if (it == (iconv_t)-1) { perror("iconv_open失敗"); exit(1); } // 変換する // ★outstrの設定方法が特殊 // ★出力された長さはoutsizeから引かれる char buf[1000], *outstr = buf; const char *instr = "こんにちは、世界"; size_t outsiz = 1000, insiz; insiz = strlen(instr); size_t siz = iconv(it, &instr, &insiz, &outstr, &outsiz); if (siz == -1) { perror("iconv_open失敗"); exit(1); } fprintf(stderr, "出力された長さ= %d\n", 1000 - outsiz); for (int i = 0; i < 1000 - outsiz; i++) printf("%c", buf[i]); // iconvを閉じる iconv_close(it); }