株式会社エスロジカル
株式会社エスロジカル
セキュリティ、Web開発、Unix開発、Go言語

■ UNIX の C言語:iconv()で文字コード変換

技術ドキュメント目次 -> UNIX の C言語 -> iconv()で文字コード変換

本技術ドキュメントは、ここしばらくメンテナンスをしておりません。
内容が古くなっている可能性などございますこと、ご理解を頂けますようお願いいたします。


サイフにやさしいSSL証明書
【低価格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言語 についての他のドキュメント


■ 他のグループのドキュメント

Apache  /  Linux  /  FreeBSD  /  OpenSSL  /  Perl  /  HTTPプロトコル  /  Jakarta Tomcat  /  Java  /  NetBSD  /  Oracle  /  PostgreSQL  /  UNIX の C言語  /  UNIX のコマンド  /  Windows  /  bind  /  システム運用TIPS

アンケートにご協力をお願いいたします。

1. このドキュメントへの評価をご選択ください。
         

2. ご感想をお書きください。