Unicode対応とは? わかりやすく解説

Unicode対応

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/07 20:30 UTC 版)

Windows API」の記事における「Unicode対応」の解説

Win32実装しているAPIWin 9xWin NTWin CEAYes Yes No W一部対応 Yes Yes Windows NT系では当初からUnicode用いられている一方Unicode対応していないWin16互換性を取るために、Win32 APIから同じAPIに対してマルチバイト文字版とUnicode版2つ用意しC/C++マクロ駆使してコンパイル時にどちらを使うか選択できる仕組み採用されている。なお、Unicode符号化には当初UCS-2が、Windows 2000から正式にUTF-16用いられている。 具体的には、文字および文字列関わる関数構造体について、マルチバイト文字Windowsコードページに基づく、日本語環境であればコードページ932)とUnicode (UTF-16) のどちらを与えることもできるように、2つ関数構造体などが準備されている。その場合、マルチバイト文字列与えべき関数構造体末尾に「A」を付けワイド文字列与えべき関数構造体末尾に「W」を付けて区別している。例えば、Win16MessageBox関数に対してWin32ではMessageBoxAとMessageBoxWという2つ関数用意されている。そして、プリプロセッサ識別子UNICODEの定義の有無によって切り替えが行われる。 #ifdef UNICODE#define MessageBox MessageBoxW#else#define MessageBox MessageBoxA#endif さらに、文字型に対して同様にCHAR (chartypedef) とWCHAR (wchar_tのtypedef) をUNICODEの定義に応じて切り替えるTCHAR型などや、ナロー文字列定数リテラルワイド文字列定数リテラル切り替えるTEXTマクロ存在する。 #ifdef UNICODE#define TEXT(s) L ## stypedef WCHAR TCHAR;#else#define TEXT(s) stypedef CHAR TCHAR;#endif これらを適切に用いると、1つソースコードからコンパイル時のオプションによってマルチバイト文字用い実行プログラムワイド文字用い実行プログラム2種類作成できる。以下はその例である。 #include #include // WinMain と wWinMain を切り替える _tWinMain などが定義されている。int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hInstPrev, LPTSTR lpszCommandLine, int nCmdShow){ MessageBox(NULL, TEXT("Hello, world"), TEXT("App"), MB_OK); return 0;} なお、Windows NT系におけるA版のAPI関数は、内部的にW版を呼び出すラッパーとなっている。A版API入力されマルチバイト文字列Unicode文字列変換されてからW版API入力され、W版APIから出力されUnicode文字列マルチバイト文字列変換されてA版API出力となる。 このプレフィックスのAはANSI、WはWide意味するANSIは、Windowsコードページ一部ANSI規格ドラフト元にしたことに由来するワイド文字 (wchar_t) はC/C++の用語であるが、Windows用C/C++処理系において、ワイド文字は大抵UCS-2またはUTF-16として実装されている。また、OLE関係では、Win32ですべてUnicode化されA/W区別存在しない。 なお、Windows 9x系では、Unicode版API一部しか実装されていない。ただし、Microsoft Layer for Unicode利用することにより、ほぼすべてのUnicode版API使用可能になるまた、Windows CEでは、逆にUnicode版APIしか実装ていないNT系でも、Unicode前提とした仕様変更が行われたり、Theme APIなど新しいAPIA/W2種用意せずUnicode用いるものだけを用意したりするなど、徐々にUnicode傾斜する傾向にある。

※この「Unicode対応」の解説は、「Windows API」の解説の一部です。
「Unicode対応」を含む「Windows API」の記事については、「Windows API」の概要を参照ください。

ウィキペディア小見出し辞書の「Unicode対応」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Unicode対応」の関連用語

Unicode対応のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Unicode対応のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのWindows API (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS