Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Πώς να μετατρέψετε C + + ASCII σε UTF8

Από τη στιγμή της δημοσίευσης , το πρότυπο που ονομάζεται C + +0 x δεν έχει ακόμη ολοκληρωθεί , οπότε δεν υπάρχει άμεσος τρόπος για να εκπροσωπήσει UTF - 8 σε C + + . Ωστόσο , τα σύγχρονα λειτουργικά συστήματα παρέχουν λειτουργίες που σας επιτρέπουν να μετατρέψετε και αντιπροσωπεύουν χορδές σε Unicode και άλλα σύνολα χαρακτήρων . Χρησιμοποιήστε τις λειτουργίες ενσωματωμένο στα Windows 2000 και στη συνέχεια να μετατρέψει ASCII σε UTF8 . Οδηγίες
Η 1

Ανοίξτε επεξεργαστή κειμένου σας και να δημιουργήσετε ένα νέο αρχείο C + + πηγή . Τοποθετήστε τις ακόλουθες γραμμές σε αυτό , οι οποίες περιλαμβάνουν τις λειτουργίες που απαιτούνται για τη μετατροπή ASCII σε UTF - 8 και το αποτέλεσμα εξόδου στην κονσόλα :

# include # include using namespace std ? int main () { char sText [ 13 ] = " Hello World ! " ? 2

Εισάγετε τις παρακάτω γραμμές κώδικα , οι οποίες χρησιμοποιούν τη λειτουργία MultiByteToWideChar να καθορίσει το μέγεθος του UTF- 16 εκπροσώπηση του string . Μπορείτε να χρησιμοποιήσετε αυτό το μέγεθος να διαθέσει ένα νέο ρυθμιστικό που μπορεί να κρατήσει την έκδοση της συμβολοσειράς UTF - 16 :

DWORD dwNum = MultiByteToWideChar ( CP_ACP , 0 , sText , -1 , NULL , 0 ) ? Wchar_t * pwText ? pwText = νέα wchar_t [ dwNum ] ?
εικόνων 3

Πληκτρολογήστε το ακόλουθο κείμενο στο αρχείο . Η λειτουργία MultiByteToWideChar παίρνει το αλφαριθμητικό ASCII και το μετατρέπει σε UTF - 16 , την αποθήκευσή του στο buffer :

MultiByteToWideChar ( CP_ACP , 0 , sText , -1 , pwText , dwNum ) ?
Η 4

Εισάγετε τον παρακάτω κώδικα μέσα στο αρχείο . Η λειτουργία WideCharToMultiByte σας λέει το μέγεθος του επιστρεφόμενο string ώστε να μπορείτε να δημιουργήσετε ένα buffer για το UTF - 8 εκπροσώπηση :

dwNum = WideCharToMultiByte ( CP_UTF8 , 0 , pwText , -1 , NULL , 0 , NULL , NULL ) ? char * psText ? psText = νέα char [ dwNum ] ?
5

Προσθέστε τον ακόλουθο κώδικα , ο οποίος μετατρέπει το UTF - 16 string σε UTF - 8 , την αποθήκευση το αποτέλεσμα στο buffer που μόλις δημιουργήσατε :

WideCharToMultiByte ( CP_UTF8 , 0 , pwText , -1 , psText , dwNum , NULL , NULL) ?
Η 6

Προσθέστε τις παρακάτω γραμμές για να εμφανιστεί το UTF - 8 και να τελειώσει το Η κύρια λειτουργία : cout < Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα