UNIX の C言語:iconv()で文字コード変換
技術ドキュメント目次 -> UNIX の C言語 -> iconv()で文字コード変換本技術ドキュメントは、2002~2004年頃に作成したものが多いです。
内容が古くなっていることもあるかと思いますが、ご了承ください。
【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。
◆ iconv()で文字コード変換
iconv() 関数を用いるとことで、UNIXのC言語のプログラム内から文字コードの変換を行うことができます。
◆ iconv()サンプルプログラム
文字列をEUCからSJISに変換する簡単なサンプルを次に記載しますので、よろしければ参考にされてください。
※RedHat Linux 7.3 と FreeBSD 5.3 でコンパイルが通ることを確認しました。
ただし、FreeBSD ではデフォルトで iconv が入っていないことも多いと思いますので、
例えば次のようにして iconv 関連をportsからインストールする必要があるかもしれません。
portinstall -PP iconv
portinstall -PP libiconv
また、その場合、
次のようにして gcc を実行して /usr/local/以下のライブラリやヘッダファイルが参照されるようにしましょう。
gcc -I/usr/local/include/ -L/usr/local/lib/ -liconv -o iconvsample iconvsample.c
/* * iconvsample.c * * Copyright (C) 2006 Slogical Corporation */ #define MYBUFSZ 1024 #include <stdio.h> #include <iconv.h> int main (int argc, char **argv) { /* 変数定義 */ iconv_t ic; char str_in[MYBUFSZ+1]; char str_out[MYBUFSZ+1]; char *ptr_in = str_in; char *ptr_out = str_out; size_t mybufsz = (size_t) MYBUFSZ; /* 変換元文字列を作成(このソースはEUCで書かれていて、変換元文字列もEUCで作成される) */ strcpy(str_in, "テストの文字列。あいうえお。アカサタナ。"); /* 文字コード変換処理 */ ic = iconv_open("SJIS", "EUC-JP"); iconv(ic, &ptr_in, &mybufsz, &ptr_out, &mybufsz); iconv_close(ic); /* 文字コード変換された文字列を出力 */ printf("%s\n", str_out); return 0; } |
■ UNIX の C言語 についての他のドキュメント
- iconv()で文字コード変換
- getloadavg()でロードアベレージの取得
- getpass()でパスワード入力時の制御
- forkとexec
- gccのstaticオプション
■ 他のグループのドキュメント
Apache / Linux / FreeBSD / OpenSSL / Perl / HTTPプロトコル / Jakarta Tomcat / Java / NetBSD / Oracle / PostgreSQL / UNIX の C言語 / UNIX のコマンド / Windows / bind / システム運用TIPS