Visual Studio 2010の「文字セット」オプションに関する質問。Visual Studio 2010の「文字セット」オプションについて
文字は
を設定 -
を設定していない - 利用Unicode文字は
を設定 - 使用マルチバイト文字は、私は、「文字セット」の3つのオプションの間にどのような違いを知りたい
を設定します。
また、私がそれらの何かを選択した場合、英語以外の言語のサポートに影響します。 (RTL言語のように)。
Visual Studio 2010の「文字セット」オプションに関する質問。Visual Studio 2010の「文字セット」オプションについて
文字は
を設定 -
を設定していない - 利用Unicode文字は
を設定 - 使用マルチバイト文字は、私は、「文字セット」の3つのオプションの間にどのような違いを知りたい
を設定します。
また、私がそれらの何かを選択した場合、英語以外の言語のサポートに影響します。 (RTL言語のように)。
互換性の設定です。旧バージョンのWindows用に書かれたレガシーコードで、Unicode対応ではありません。 Windows 9xファミリのWindows MEは、最後に広く無視されていました。 "Not Set"または "Use Multi Byte Character Set"を選択すると、文字列を引数として取るすべてのWindows API関数は、char*
文字列をwchar_t*
文字列に変換する小さな互換ヘルパー関数に再定義されます。
このようなコードは、デフォルトのシステムコードページの設定に非常に依存します。コードページは8ビット文字をUnicodeにマップし、フォントグリフを選択します。コードを実行しているマシンに正しいコードページがある場合、プログラムは正しいテキストのみを生成します。コードページが一致しない場合、値> = 128の文字は正しく表示されません。
最新のコードでは、常に「Unicode文字セットを使用する」を選択してください。特に、右から左のレイアウトで言語をサポートしたい場合、開発マシンでアラビア語またはヘブライ語のコードページを選択していない場合。コードにstd::wstring
またはwchar_t[]
を使用してください。実際のRTLレイアウトを取得するには、CreateWindowEx()
コールでWS_EX_RTLREADING
スタイルフラグをオンにする必要があります。
ハンスは既にこの質問に答えていますが、これらの設定では不思議な名前があることがわかりました。 (正確には何を設定し、なぜ他の2つのオプションはとても似て聞こえるされていない?)ことについて:
Difference between MBCS and UTF-8 on Windowsは、これらの問題にもっと詳しく関わっています。
UPC-8のサポートを追加することを拒否しています。 – MarcusJ