如何將全形數字轉換為半形數字

文章翻譯 文章翻譯
文章編號: 225136
全部展開 | 全部摺疊

結論

全形 Unicode 數字 (U + FF10-U + FF19) 使用WideCharToMultiByte轉換成標準的半形數字 (U + 0030-U + 0039) ,在Windows 95 與 98 上的轉換會失敗。其中一個應該使用旗標 LCMAP_HALFWIDTH API LCMapString 全形字元轉換為半形字元。

其他相關資訊

因為此 API 的 W 版本上 Windows 95 及 Windows 98,您需要將全形字元從 Unicode 轉換成正確的 DBCS 字串,然後呼叫 LCMapString 進行轉換無法運作。以下是使用傳統中文、 簡化中文、 日文和韓文中的全形 Unicode 數字的範例:
#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 中,安裝其中一個的四個字碼頁 (為繁體中文的簡體中文,932 日文和韓文 949 936 950) 系統上,並明確地設定網頁和地區設定 ID 參數程式碼在上述的 API 呼叫。

?考

如需有關安裝的字碼頁的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
164948 如何安裝字碼頁

屬性

文章編號: 225136 - 上次校閱: 2014年3月4日 - 版次: 6.0
關鍵字:?
kbdsxglobal2003swept kbdbcs kbhowto kblocalization kbnls kbunicode kbmt KB225136 KbMtzh
機器翻譯
請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。
按一下這裡查看此文章的英文版本:225136
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com