Πώς μπορείτε να μετατρέψετε αριθμούς πλήρους πλάτους σε αριθμούς μισού πλάτους


Σύνοψη


Κατά τη μετατροπή των αριθμών 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 για τα κορεατικά) στο σύστημα και ορίστε ρητά τις παραμέτρους της κωδικοσελίδας και του ΑΝΑΓΝΩΡΙΣΤΙΚού τοπικών ρυθμίσεων στις παραπάνω κλήσεις API.

Αναφορές


Για περισσότερες πληροφορίες σχετικά με την εγκατάσταση μιας κωδικοσελίδας, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
164948 Πώς να εγκαταστήσετε μια κωδικοσελίδα