- 締切済み
文字コードの変換プログラム
SJIS,JIS,EUC,Unicodの変換プログラムを作っています。 SJISを基調とし、それ以外とコード組む事で実現させていますが、 SJIS-Unicodeの変換がどのように行えばよいのかわかりません。 サイト等で対応表なども参考にしているのですが、 どこでどう使えばいいのか見当がつきません。 アドバイスお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- sakusaker7
- ベストアンサー率62% (800/1280)
> stdio.hは「ヘッダーファイル」ではなく「ヘッダ」です。 > ヘッダはファイルで実装されているとは限りません。 それで? 言語弁護士を気取っての指摘だけなら止めてください。
- jacta
- ベストアンサー率26% (845/3158)
> stdio.h そのものは「ヘッダーファイル」ですね。 stdio.hは「ヘッダーファイル」ではなく「ヘッダ」です。 ヘッダはファイルで実装されているとは限りません。
- sakusaker7
- ベストアンサー率62% (800/1280)
試用する環境の情報がないのであれですが、UNIX系の環境なら iconv、 WindowsならAPI (MultiByteToWideChar/WideCharToMultiByte)が 別途インストールする手間が(たぶん)なくていいのではないでしょうか。 複数の環境で共通にというとちとあれですが。 Manpage of ICONV http://www.linux.or.jp/JM/html/LDP_man-pages/man3/iconv.3.html MultiByteToWideChar 関数 http://msdn.microsoft.com/ja-jp/library/cc448053.aspx WideCharToMultiByte 関数 http://msdn.microsoft.com/ja-jp/library/cc448089.aspx > ライブラリ(stdio.hみたいの??)とかAPIとかよくわからないです・・ > 最初はふぁいる操作でできないかなーと考えていましたが・・ > C言語は初心者に1本毛が生えたくらいです。 stdio.h そのものは「ヘッダーファイル」ですね。 printf とか fread みたいに、変換をしてくれる関数があるってことです。
- Tacosan
- ベストアンサー率23% (3656/15482)
Shift_jis と Unicode の変換は頑張って表を引くしかないはずです. 例えば unsigned int sjis2unicode(unsigned int sjis) { static const unsigned int unicode[] = { .... Shift_jis の各コードに対応する Unicode の文字コードを並べる .... }; return unicode[sjis]; } のような感じかな. まあ, #1 と同じくライブラリを使うことをお勧めします. 何がいいんだろ. ICU とかかなぁ?
- sakusaker7
- ベストアンサー率62% (800/1280)
自力で全部やるなら、自分で対応表を作る必要があります。 元にできるデータは unicode.org にありますから、がんばってください。 つか、何かのライブラリとかAPIとか使ったほうがいいとも思いますけどね。
補足
サイトから対応表は貰って来たのですが・・ ライブラリ(stdio.hみたいの??)とかAPIとかよくわからないです・・ 最初はふぁいる操作でできないかなーと考えていましたが・・ C言語は初心者に1本毛が生えたくらいです。