iconvは、文字コード変換をする。
「どの文字コードからどの文字コードへ変換するか」といった情報を指定して、変換ディスクリプタを取得しないといけない。
test1.txtを読み込みbufに格納。
"utf-8"から"Shift_JIS"へ変換するディスクリプタiconv_dscを取得。
iconvにiconv_dsc、bufのポインタ、bufの長さなどを渡すと、buf2_ptrに変換後の文字列ポインタが入るので、これをtest2.txtとして保存。
$ vi iconv.c $ cat test1.txt あいうえお $ gcc iconv.c -o iconv $ ./iconv iconv error! iconv error detail: Invalid or incomplete multibyte or wide character $ vi test1.txt $ cat test1.txt あかさたな $ gcc iconv.c -o iconv $ ./iconv $ ls iconv iconv.c test1.txt test2.txt $ cat test2.txt 縺ゅ°縺輔◆縺ェ$ $ cat test2.txt | iconv -f utf8 -t Shift_JIS あかさたな$ $
test2.txtはShift_JISになってしまって文字化けしてるので、utf8に戻して表示。
たしかに文字コード変換できてる。
Sample/unixsyscall/iconv/iconv/src/iconv at master · bg1bgst333/Sample · GitHub