כיצד להמיר מספרים ברוחב מלא למספרים בחצי רוחב

סיכום

בעת המרת מספרי Unicode ברוחב מלא (U + FF10-U + FF19) למספרים רגילים בחצי רוחב (U +0030-U + 0039) בעת השימוש ב-WideCharToMultiByte, ההמרה אינה מתבצעת ב-Windows 95 וב-98. יש להשתמש ב-API LCMapString עם דגל LCMAP_HALFWIDTH כדי להמיר את התווים ברוחב מלא לתווים בחצי רוחב.

מידע נוסף

מאחר שגירסת ה-W של אפליקציית API זו אינה פועלת ב-Windows 95 ו-Windows 98 1 צריך להמיר את התווים ברוחב מלא מ-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, התקן אחד מארבעת עמודי הקוד (950 עבור סינית מסורתית, 936 עבור סינית פשוטה, 932 עבור יפנית ו-949 for קוריאנית) במערכת והגדר באופן מפורש את הפרמטרים של דף הקוד ואת מזהה האזור בשיחות API לעיל.

הפניות

לקבלת מידע נוסף אודות התקנת דף קוד, לחץ על מספר המאמר הבא כדי להציג את המאמר ב-Microsoft Knowledge Base:

כיצד להתקין קידוד

זקוק לעזרה נוספת?

הרחב את הכישורים שלך
סייר בהדרכה
קבל תכונות חדשות לפני כולם
הצטרף למשתתפי Microsoft insider

האם מידע זה היה שימושי?

תודה על המשוב!

תודה על המשוב! נראה שכדאי לקשר אותך לאחד מנציגי התמיכה של Office.

×