• 締切済み

あるユニコード文字が、あるコードページで表示可能か否かを調べる方法

お世話になります。 Windows上でWindowsのAPIを使って あるユニコード文字があるコードページで表示可能か否かを 調べる方法はありますか? 簡単に考えると、WideCharToMultiByteで 変換不可文字と判断されるか 否かをみるのかと思うのですが、他に方法はありますでしょうか?

みんなの回答

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.2

文字コード変換ですが、 オープンソースであれば、 iconvを使用しているのが多いです。 Microsoftのチュートリアルによると、 InternetExplorerのコンポーネントを使用して文字コード変換しているみたいです・・・

kurinkurinkurin
質問者

お礼

回答ありがとうございます。 iconvもManpageをみると、 The encodings permitted are system dependent. とあり、結局、これもすべてのコードページをサポートするわけではなく その意味では、WideCharToMultiByteのラッパにすぎないと思われ WideCharToMultiByte APIで十分なように思えてきました。 今回は、システムがサポートしないコードページの場合は、すべからく変換不可と判断して構わないので、WideCharToMultiByteでいこうと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

あるユニコード文字が、あるコードページ文字に変換可能かどうかは、 実際に変換してみるのが、一番だと思います。 WideCharToMultiByte()は、対応しているコードページが制限されますから、 WideCharToMultiByte()が対応していない、コードページについては、調べられませんよ。

kurinkurinkurin
質問者

補足

Yanceさん 回答ありがとうございます。 では実際に変換するには、なんというAPIを使うのが適切でしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • unicode←→JISコード

    Borland C++ Builder5で、メール関係のプログラムを書いていますが、VBAが返すunicodeをjisに変換したいのです。それ用のAPIがあるらしいのですが、APIリファレンスが手元にないわ、買うにも高すぎるわで、困っています。 APIを直接聞いちゃうのはルール違反かもしれませんので、違う質問をします。 BorlandについてくるHELPでWideCharToMultiByteというのがあります。これが解決に近いですか? というか、ワイドキャラクタとマルチバイトって、どう違うんでしょうか?

  • 文字(ユニコード画面)がうまく表示されません

    宜しくお願いします。 『ウィキペディア(Wikipedia)』のHPを見ると、一部文字化けして、「□□」というように表示されます。特に特殊な漢字などではないと思います。他のページは、きちんと表示されます。 エンコードを見ると、unicode(UTF-8)というところに、チェックがついています。他のコードにすると、文字化けしまくりです。 何が原因なのでしょうか? 文字コードの問題でしょうか? それともファイルが壊れているのでしょうか?

  • VBScript ASC関数:文字エンコード(Unicode→Shif

    VBScript ASC関数:文字エンコード(Unicode→Shift-JIS)多対一変換について 初めての質問です。 よろしくお願いいたします。 【質問】 VBScriptのASC関数で文字をShift-JISコード 表示した場合、多対一変換され、文字変換が起こります。 この多対一変換をしないように、もし対応する文字が無い場合は、 ?になるようにしたいと思いますが、良い方法は無いでしょうか? 【現象】 ラテン1補助のÀ文字(A`)の UnicodeとSift-JISコードのマップ対応が原因のようです。 具体的には、Àは、 Unicodeでは(A`)だが、Sift-JISコードでは(A) にマップされているのです。 IMEパッドの文字コードをみるとわかります。 以下のサイトを見ると、さらに詳しく載っています。 ▼参考サイト 第7回 Unicodeからの多対一の変換[前編] http://gihyo.jp/admin/serial/01/charcode/0007 そこで、APIのwidechartomultibyte関数の wc_no_best_fit_charsを設定したエンコード方式 を使用すれば解決するというところまでは、 わかってきたのですが、これをVBScriptのASC関数 と同じ動きをするように関連付けるか、別途プログラム を作る方法がわからず困っています。 わかる方いらしたら、ご教授下さい。 よろしくお願い致します。

  • 文字コードANSIからUnicodeにしてください

    今日はじめたばかりの初心者です。 メモ帳でソースを作ってるのですが、 コードの文字数が多くなると、文字コードANSIからUnicodeにしてくださいとメモ帳から言われ、 Unicodeに変更して、保存すると、 http://localhost/tset.php でコードを確認すると、文字化けはしないのですが、おかしくなります。 だからって文字コードANSIにしていると、毎回Unicodeにしますか?と聞かれます。 こういう場合どうすればいいでしょうか? 他のテキストエディタハワードしか使ったことがないです。

    • ベストアンサー
    • PHP
  • Unicodeの文字がどれか、調べたいです

    ある文章をメモ帳で保存しようとしたら「このファイルはANCIテキストファイルで保存すると失われてしまうUnicode形式の文字を含んでいます。Unicodeの情報を保存するには、[文字コード]から[Unicode]を選択してください」と出ました。どれがUnicodeの文字なのかを調べる方法を探しましたが、アテになるのが全くありません。また、「[文字コード]から[Unicode]を選択する」という言葉の意味も分かりません。文字コード表を開きましたが、その後詰まりました。 限りなく分かりやすい説明をお願いします!

  • unicodeと2バイト文字

    文字コードにすごいうとい者なのですが、見慣れない _tmain なんていうものを見てしまって、少し調べてみました。 そうすると、なんだか2バイトでは世界中の文字はもとより、感じすらすべて表すことは不可能で、今のunicode主流は3バイトで表現するのだとか。 で、私の知識の中では、C言語ではwchar_tでunicodeを表現しているらしいのですが、それじゃあ足りないわけで、ちゃんとした3バイト文字を表現するための公式的?な記述方法は(WIN32 APIで)あるのでしょうか。(その他MFCなどでもあれば。) 本人こういう事柄について、今まで考えたこともなく、よくわからないまま質問しているので、どうぞ怒らないでください。 よろしくおねがいします。

  • CIDコードからUNICODEへの変換???

    .NETのC++でプログラムを作っています 外部から文字列が渡されますが、この文字列はCIDコードです これをUNICODEに変換して使用したいのですが、その方法が分かりません 『 CID UNICODE 変換 』をキーワードにして検索しましたが適当な資料に出会えません C++から呼べる変換関数などをご存知でしたらご指導お願い申し上げます 宜しくお願い致します

  • Unicode(第四水準)を使う方法

    OSX(10.3.3)でATOK16を使い第四水準(Unicode)の文字が変換できるようになりましたが、テキストエディットなどの純正ソフトでは使えるものの、肝心のMS-OfficeやAdobe InDesign 2.0Jなどでは?としか表示されません。変換ウィンドウとアプリケーションのフォントを合わせても同じです。何か方法はありませんでしょうか。

    • ベストアンサー
    • Mac
  • 文字コード変換の場合わけ。

    あるURLのソースの文字コードを判定してUnicodeに変換する メソッドや方法はありませんか? URLによってshiftJISでかかれていたり、EUC-JP で書かれているページがあるのでそれを 判定してUnicodeに変換して出力する方法が欲しいのです。 現在は InputStreamReader isr = new InputStreamReader(is,"EUC-JP"); コンストラクタを用いてコード変換を行っています。 お願いします。

    • ベストアンサー
    • Java
  • unicodeの表示

    C言語でプログラミングをしているのですが、unicodeの表示方法がよくわかりません。┌という文字(unicodeでU+250C)を表示したく、wchar_t型など調べたのですがプログラムの書き方がよくわかりませんでした。unicodeを直接指定する方法か'┌'のように直接指定する方法が知りたいです。アドバイスお願いします。

日本のサッカーは本当に惨め
このQ&Aのポイント
  • 日本のサッカーは手を使わないでボールをコントロールする競技に向いていない。
  • 日本のサッカーは進歩しておらず、恥ずかしいボール転がし遊びが続いている。
  • 日本のサッカーは世界のトップ選手との技術的な差が明らかであり、上位争いには500年〜1000年かかるだろう。
回答を見る