C言語関係掲示板

過去ログ

No.1076 C言語用の文字コード変換ライブラリ

[戻る] [ホームページ]
No.14094

C言語用の文字コード変換ライブラリはありますか?
投稿者---Mine(2004/05/19 16:57:30)


Mineと申します。
C言語用の文字コード変換ライブラリを探しているのですが、
どなたかよいものをご存知ないでしょうか。
必須要件は SJIS、EUC-JP、JIS の相互変換ができること、
理想的には文字コードの自動判別ができるといいです。
イメージとしては引数に char 型配列または std::string 変数を
渡すと、文字コードを変換したものを返してくれる関数を考えています。

nkfのソースを入手して、引数に char 型配列を受け取る関数の形に
してみようとしたのですが、現在原因不明の実行時エラーが出ており
うまくいきません。
文字コード変換は需要が多いはずなので、すでに有名なライブラリ
(Perl の jcode.pl のような)があってもおかしくないと思うのですが…。

どなたかアドバイスお願い致します。


No.14095

Re:C言語用の文字コード変換ライブラリはありますか?
投稿者---nop(2004/05/19 17:35:24)


>C言語用の文字コード変換ライブラリを探しているのですが、
>どなたかよいものをご存知ないでしょうか。

Yahoo なり Google なりで検索すれば出てくるのでは?
少しは自分で検索してみましたか?

>nkfのソースを入手して、引数に char 型配列を受け取る関数の形に
>してみようとしたのですが、現在原因不明の実行時エラーが出ており
>うまくいきません。

変換後の文字列を格納する領域は、十分な領域が確保されていますか?



No.14096

Re:C言語用の文字コード変換ライブラリはありますか?
投稿者---Mine(2004/05/19 17:59:24)


>少しは自分で検索してみましたか?
^^^^^^

自分で少しも努力しなかったような書き方に見えましたでしょうか?

私が調べた限りでは、アプリケーションとしての nkf、qkc と、
バベルというライブラリ、MFC(?)の CString を使った
小さなデモ用のようなクラスしか見つかっていません。
MFC については開発環境として用意できないため使えず、
バベルに関しては検討中(リンクエラーが解消できないのですが)ですが、
私の質問の意図としては、需要の多そうなものだけに
より一般的な(例えば STL のような)形でライブラリがないか、
もしあればご教授いただければと思ったのです。
前回書き忘れましたが、できれば Windows、Linux のどちらでも
使えるものがよいのですが、いかがでしょうか。

>>nkfのソースを入手して、引数に char 型配列を受け取る関数の形に
>>してみようとしたのですが、現在原因不明の実行時エラーが出ており
>>うまくいきません。
>
>変換後の文字列を格納する領域は、十分な領域が確保されていますか?

出力部分は変更していないので、標準出力に表示されるはずなのですが…。


No.14099

Re:C言語用の文字コード変換ライブラリはありますか?
投稿者---YuO(2004/05/19 20:10:41)


>私の質問の意図としては、需要の多そうなものだけに
>より一般的な(例えば STL のような)形でライブラリがないか、
>もしあればご教授いただければと思ったのです。
>前回書き忘れましたが、できれば Windows、Linux のどちらでも
>使えるものがよいのですが、いかがでしょうか。

International Components for Unicodeですかね。
自動判別はできないですが(多種多様なコードに対応しているため),これ一本で大抵の文字コードに対応できます。



No.14102

Re:C言語用の文字コード変換ライブラリはありますか?
投稿者---Mine(2004/05/19 22:06:40)


>International Components for Unicodeですかね。
>自動判別はできないですが(多種多様なコードに対応しているため),これ一本で大抵の文字コードに対応できます。

返信ありがとうございます。ICUですか、これすごいですね。
これならなんとかなるかもしれませんが、日本語のコード変換だけが
必要なときにはちょっとおおげさかもしれませんね。
まだざっと眺めただけなので、これから精読してみます。

# JavaにもPascalにもデファクトスタンダードな文字コード変換ライブラリって
# ないような気がしますが、なんででしょうね。
# 使いたい場面はたくさんあるはずなのに。


No.14216

(解決)Re:C言語用の文字コード変換ライブラリはありますか?
投稿者---Mine(2004/05/25 09:39:11)


Unix系:iconvライブラリ
http://www.opennc.org/onlinepubs/7908799/xsh/iconv.html

Windows系:nkf dll
http://www.vector.co.jp/soft/win95/util/se020949.html

両環境で使えるものが必要なら、nkf を関数化して使うのが一番よさそうです。
# 上記 dll はソースが公開されていないので別途自作する必要あり。


No.14101

Re:C言語用の文字コード変換ライブラリはありますか?
投稿者---シャノン(2004/05/19 22:00:01)


unkanj とか…マイナーだなぁ;

http://www.webinter.net/pbd/


No.14103

Re:C言語用の文字コード変換ライブラリはありますか?
投稿者---Mine(2004/05/19 22:14:35)


>unkanj とか…マイナーだなぁ;
>
>http://www.webinter.net/pbd/

返信ありがとうございます。
ソースは公開されていないようなので、.lib を使うつまり Windows 限定に
なりますね。Windows はこれ、Linux はまた別のものを使用、というのも
ありかもしれませんね。
でもこれ、ライセンスの表記がないけど好きに使っていいんだろうか。

しかしネットで検索すると同じ問題で困っている人はたくさんいるのに、
どうして jcode.pl 並みに使い勝手のいいライブラリがないんでしょうね…。


No.14125

Re:C言語用の文字コード変換ライブラリはありますか?
投稿者---シャノン(2004/05/20 22:56:25)


>>unkanj とか…マイナーだなぁ;
>>
>>http://www.webinter.net/pbd/
>
>返信ありがとうございます。
>ソースは公開されていないようなので

ソース公開してますって書いてありますよ?
ためしにダウンロードしてみたら、unkanj_sdk.lzh の中に入ってました。


No.14127

Re:C言語用の文字コード変換ライブラリはありますか?
投稿者---Mine(2004/05/20 23:31:30)


>ソース公開してますって書いてありますよ?
>ためしにダウンロードしてみたら、unkanj_sdk.lzh の中に入ってました。

すいません、見逃していました。
最初のアーカイブだと思って削除してしまっていたようです。


No.14126

Re:C言語用の文字コード変換ライブラリはありますか?
投稿者---シャノン(2004/05/20 23:01:37)


>でもこれ、ライセンスの表記がないけど好きに使っていいんだろうか。

ソースはフリーで公開します、とは書いてありますが(readme参照)
ライセンスに関する記述はないですね。
たぶん使っちゃってもいいんじゃないかな? と思いますが、
気になるようでしたら作者さんにメールでお問い合わせください。