Sabtu, 29 Januari 2011
0
Convert Karakter ASCII ke Unicode
Source ini sama saja dengan mengkonversi string Ansi ke Unicode. Tetapi di sini kita menggunakan Long Pointer dari string yaitu LPSTR untuk Ansi dan LPWSTR untuk versi Wide-nya/Unicode. Dengan prinsip dan algoritma bahwa setiap byte harus disisipi char NULL. Sehingga bisa dikatakan sebagai Wide String/Unicode.
#include#include #include void ConvertToUnicode(LPCSTR lpNewString, LPWSTR lpUnicodeString); int main(int argc, char *argv[]) { // Alokasi memory. LPWSTR lpBuff0 = (LPWSTR)GlobalAlloc(GPTR, MAX_PATH); LPWSTR lpBuff1 = (LPWSTR)GlobalAlloc(GPTR, MAX_PATH); // Mendefinisikan variabel dengan string. LPCSTR lpString = "C:\\WINDOWS\\system32\\eula.txt"; LPCSTR lpNewString = "EULA.TXT"; // Mulai mengkonversi string ke Unicode. ConvertToUnicode(lpString, lpBuff0); ConvertToUnicode(lpNewString, lpBuff1); // CopyFileW() = (Wide String/Unicode); // CopyFileA() = (Ansi String); if(CopyFileW(lpBuff0, // File yang akan disalin. lpBuff1, // Tujuan file. FALSE // Overwrite an existing file. ) == TRUE) { printf("File berhasil disalin dalam mode Unicode.\n"); }else{ printf("File gagal disalin dalam bentuk Unicode.\n"); } // Jangan lupa untuk membebaskan memory yang dialokasi. GlobalFree(lpBuff0); GlobalFree(lpBuff1); getch(); // Tahan karakter. return 0; } void ConvertToUnicode(LPCSTR lpNewString, LPWSTR lpUnicodeString) { int lpNewString_length = lstrlenA(lpNewString); int x = 0; // Init variabel x = interger 0. for(;lpNewString_length > x;x++) { lpUnicodeString[x] = lpNewString[x]; // Tambah karakter Null Terminated disetiap bytenya. // Ex. DATA => D + NULL + A + NULL + T + NULL + A + NULL. lpUnicodeString[x + 1] = '\0'; } }
Langganan:
Posting Komentar (Atom)
0 Komentar Untuk “Convert Karakter ASCII ke Unicode”
Posting Komentar
Berikan komentar positif tentang artikel yang sederhana ini niscaya sobat akan mendapatkan balasannya. Hehehe