次のエントリ: ロッテ戦 @ ヤフードーム [diary]
BCCで文字コード変換
2006-09-08-1 / カテゴリ: [win][programming][c] / [permlink]
とゆーアレで。
普段ならPerlでJcodeなり使ってとっとこやるとこだけど、妹さん(winユーザ)からアプリ(数千通のメールの集計処理)のリクエストなのでPerlインタプリタは候補からはずれる。
BCC(Borland C++ Compiler)で文字コードを変更する必要が。
ざっと検索した感じでは、iconvのWindows用DLLが使えそう。
Libiconv DLL 1.9.1 for Windowsをダウンロードし、ググって出てきたこのページを参考にテストコードを書いてみるがリンクできず…
makeファイル作った方がいいんだろうケド、テストコードなのでとりあえず
で、ググって見るとこのページの方法でリンクできた。
ようやく(今更ながら)マニュアルを見ると、iconv_open の引数に指定するコード名が"SHIFT_JIS"でなく"SJIS"になってたので修正。(お手本が違ってる…)
普段ならPerlでJcodeなり使ってとっとこやるとこだけど、妹さん(winユーザ)からアプリ(数千通のメールの集計処理)のリクエストなのでPerlインタプリタは候補からはずれる。
BCC(Borland C++ Compiler)で文字コードを変更する必要が。
ざっと検索した感じでは、iconvのWindows用DLLが使えそう。
Libiconv DLL 1.9.1 for Windowsをダウンロードし、ググって出てきたこのページを参考にテストコードを書いてみるがリンクできず…
Error: 外部シンボル '_libiconv_open' が未解決(C:\DOCUMENTS AND SETTINGS\ZAKI\MY DOCUMENTS\PROG\C\ICONV\TEST.OBJ が参照) Error: 外部シンボル '_libiconv' が未解決(C:\DOCUMENTS AND SETTINGS\ZAKI\MY DOCUMENTS\PROG\C\ICONV\TEST.OBJ が参照) Error: 外部シンボル '_libiconv_close' が未解決(C:\DOCUMENTS AND SETTINGS\ZAKI\MY DOCUMENTS\PROG\C\ICONV\TEST.OBJ が参照)パスが通ってないのかと思いきや(作業ディレクトリ・Cソース・iconv.{h,lib,dll}は全部同じ階層)、その通り(汗)
makeファイル作った方がいいんだろうケド、テストコードなのでとりあえず
> bcc32 test.c iconv.libすると
Error: 'C:\DOCUMENTS AND SETTINGS\ZAKI\MY DOCUMENTS\PROG\C\ICONV\ICONV.LIB' contains invalid OMF record, type 0x21 (possibly COFF)ん、、やっぱリンクできない…
で、ググって見るとこのページの方法でリンクできた。
> rename iconv.lib iconv.lib.org > coff2omf iconv.lib.org iconv.lib > bcc32 test.c iconv.libで、ようやく実行するも、変換できない…
ようやく(今更ながら)マニュアルを見ると、iconv_open の引数に指定するコード名が"SHIFT_JIS"でなく"SJIS"になってたので修正。(お手本が違ってる…)
ic = iconv_open("SHIFT_JIS", "ISO-2022-JP"); if (ic == (iconv_t)-1) { printf("iconv error\n"); return -1; } iconv(ic, &ptr_in, &mybufsz, &ptr_out, &mybufsz); iconv_close(ic);こんな感じ。
次のエントリ: ロッテ戦 @ ヤフードーム [diary]
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2013-05-02 16:12