• 締切済み

UTF_16からUTF_8への変換で困っています。

初めまして、こんにちは。 いきなりなのですが、C言語のプログラムをしていて聞きたいことがあります。 ユニコードのUTF_16で取得したデータを、UTF_8に変換するにはどうしたらいいですか?? 色々自分なりに探してみたのですが見当たりませんでした。 知っている方がいればよろしくお願いします。 あとWindowsAPIとはなんでしょうか??友人にその中にあるよと言われたのですが、C言語(プログラム自体)を始めたばかりなのでよく理解できません。 みなさんよろしくお願いします。

みんなの回答

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

UTF-16からUTF-8への変換、またはその逆は、単純な計算で行うことができます。参考URLを見るなどして、自分で作ってみてください。 WideCharToMultiByteでもある程度のことはできますが、BOMの有無やサロゲートの対応可否など、細かな制御を行うには自作した方が便利です。 それに、WideCharToMultiByteでは環境に依存してしまいますが、自分で計算すれば環境には依存しません。

参考URL:
http://seclan.dll.jp/ccutffaq.htm
noname#153284
質問者

お礼

返信ありがとうございます。 教えてくださったURLを参考にしてみます。 また聞いてしまうことがあると思いますが、その時はよろしくお願いします。

noname#50176
noname#50176
回答No.1

WideCharToMultiByte 関数ですね? WideCharToMultiByte(CP_UTF8,Unicode バッファ,-1,バッファ,バッファの長さ,0,0); のような感じです。 ・WindowsAPI について 検索すれば出ると思うのですが、簡潔に示します。 API=Application Programming Interface の略で その名の通り、プログラミング用のインターフェイス(仲介役)です。 パソコンで何か動作をさせる際、画面表示やキー入力など本来は ハードウェアデバイスに機械語で指令記述するのですが、 命令手順の敷地が広すぎたり、機種ごとに異なるなどの不都合を なくすためシステムコールというあらかじめ手順が用意されている サブルーチンを API関数が、簡単な引数で呼び出します。 さらに、文字列の計算、変換、など便宜的なものもあります。 簡単に言うと、OS の多数機能や体裁を簡単な関数呼び出しで実現 できるものです。 尚、VisualBasic で使われるコンポーネント(例えばファイルを開く のダイアログ時に使用する、プロパティやメソッドを実装した ポリモーフィズムオブジェクト)は、API の呼び出しを内部で行って います。

noname#153284
質問者

お礼

返信ありがとうございます。 UTFの件、色々とやってみます! わからなくなったら聞いてしまうかと思いますが、その時はまたよろしくお願いします。 APIは、プログラムを組んでいるときに使っている関数なんかが当てはまると考えればよろしいですか??例えば、レジストリからデータを取ってくるような関数ですか?

関連するQ&A

専門家に質問してみよう