概要

Windows 95 や Windows 98 で WideCharToMultiByte を使用しても、Unicode の全角数字 (U+FF10 ~ U+FF19) を標準の半角数字 (U+0030 ~ U+0039) に変換することはできません。全角文字を半角文字に変換するには、LCMapString API を LCMAP_HALFWIDTH フラグと共に使用する必要があります。

詳細

Windows 95 や Windows 98 では W バージョンの API が動作しないため、全角文字を変換するには、Unicode 文字列を対応する DBCS 文字列に変換してから LCMapString を呼び出す必要があります。すべての東アジア言語版 (簡体字中国語、繁体字中国語、日本語、および韓国語) の Windows 95 および Windows 98 で動作するサンプルを次に示します。

#include <stdio.h>#include <tchar.h>#include <windows.h>void main(void){WCHAR T[2] = {65301, 0};TCHAR dbcs[3], conv[3];WideCharToMultiByte(CP_ACP, 0, T, -1, dbcs, sizeof(dbcs), NULL, NULL);int nRes = LCMapString(LOCALE_USER_DEFAULT, LCMAP_HALFWIDTH,                                                       dbcs,sizeof(dbcs),conv,sizeof(conv));printf("%s\n",conv);}

Windows 95 や Windows 98 で変換を行うには、4 つの東アジア言語のコード ページ (日本語は 932、簡体字中国語は 936、韓国語は 949、繁体字中国語は 950) の 1 つをシステムにインストールし、上記の各 API 呼び出しでコード ページとロケール ID のパラメータを明示的に設定する必要があります。

関連情報

コード ページのインストールの詳細については、次の資料を参照してください。

164948 HOWTO: Installing a Code Page

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。