Sabtu, 29 Januari 2011

0

Convert Karakter ASCII ke Unicode

  • Sabtu, 29 Januari 2011
  • Nurkholish Ardi Firdaus
  • Share
  • 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';
     }
    }
    
    Jangan Lupa Komentar Yaa..
    Related Posts Plugin for WordPress, Blogger...

    0 Komentar Untuk “Convert Karakter ASCII ke Unicode”

    Posting Komentar

    Berikan komentar positif tentang artikel yang sederhana ini niscaya sobat akan mendapatkan balasannya. Hehehe

    Subscribe