Trang 1 trên 1

Chuyển đổi qua lại giữa UNICODE và VNI

Đã gửi: T.Năm 05/08/2010 6:47 pm
gửi bởi phantronghiep07
Thủ thuật: Chuyển đổi qua lại giữa UNICODE và VNI
Tác giả: phantronghiep07
Mô tả: Mình giới thiệu với các bạn 2 hàm chuyển đổi qua lại giữa 2 font chữ tiếng Việt thông dụng là Unicode và Vni.


Hàm rất đơn giản, các bạn xem là hiều ngay. Chú ý là cửa sổ viết code các bạn cần dùng font chữ Vni.
Khi sử dụng các hàm của mình trong các ứng dụng, các bạn cần ghi rõ tác giả.

1. Hàm chuyển từ font Unicode sang Vni

  1. Public Function Uni2Vni(nhapUni As String) As String
  2. '---------------------------------------------------------------------------------------
  3. ' Function : Uni2Vni
  4. ' Author    : phantronghiep07
  5. ' Phone     : 0915 080 282
  6. '---------------------------------------------------------------------------------------
  7.    Dim maAcii, Vni, loi, suaLoi
  8.     Dim i As Integer
  9.    
  10.      maAcii = Array(7845, 7847, 7849, 7851, 7853, 226, 225, 224, 7843, 227, 7841, 7855, 7857, 7859, _
  11.                                 7861, 7863, 259, 250, 249, 7911, 361, 7909, 7913, 7915, 7917, 7919, 7921, 432, _
  12.                                 7871, 7873, 7875, 7877, 7879, 234, 233, 232, 7867, 7869, 7865, 7889, 7891, 7893, _
  13.                                 7895, 7897, 244, 243, 242, 7887, 245, 7885, 7899, 7901, 7903, 7905, 7907, 417, _
  14.                                 237, 236, 7881, 297, 7883, 253, 7923, 7927, 7929, 7925, 273, 7844, 7846, 7848, _
  15.                                 7850, 7852, 194, 193, 192, 7842, 195, 7840, 7854, 7856, 7858, 7860, 7862, 258, _
  16.                                 218, 217, 7910, 360, 7908, 7912, 7914, 7916, 7918, 7920, 431, 7870, 7872, 7874, _
  17.                                 7876, 7878, 202, 201, 200, 7866, 7868, 7864, 7888, 7890, 7892, 7894, 7896, 212, _
  18.                                 211, 210, 7886, 213, 7884, 7898, 7900, 7902, 7904, 7906, 416, 205, 204, 7880, 296, _
  19.                                 7882, 221, 7922, 7926, 7928, 7924, 272)
  20.                                
  21.      Vni = Array("aá", "aà", "aå", "aã", "aä", "aâ", "aù", "aø", "aû", "aõ", "aï", "aé", "aè", _
  22.                             "aú", "aü", "aë", "aê", "uù", "uø", "uû", "uõ", "uï", "öù", "öø", "öû", "öõ", _
  23.                             "öï", "ö", "eá", "eà", "eå", "eã", "eä", "eâ", "eù", "eø", "eû", "eõ", "eï", _
  24.                             "oá", "oà", "oå", "oã", "oä", "oâ", "où", "oø", "oû", "oõ", "oï", "ôù", "ôø", _
  25.                             "ôû", "ôõ", "ôï", "ô", "í", "ì", "æ", "ó", "ò", "yù", "yø", "yû", "yõ", "î", _
  26.                             "ñ", "AÁ", "AÀ", "AÅ", "AÃ", "AÄ", "AÂ", "AÙ", "AØ", "AÛ", "AÕ", _
  27.                             "AÏ", "AÉ", "AÈ", "AÚ", "AÜ", "AË", "AÊ", "UÙ", "UØ", "UÛ", "UÕ", _
  28.                             "UÏ", "ÖÙ", "ÖØ", "ÖÛ", "ÖÕ", "ÖÏ", "Ö", "EÁ", "EÀ", "EÅ", _
  29.                             "EÃ", "EÄ", "EÂ", "EÙ", "EØ", "EÛ", "EÕ", "EÏ", "OÁ", "OÀ", "OÅ", _
  30.                             "OÃ", "OÄ", "OÂ", "OÙ", "OØ", "OÛ", "OÕ", "OÏ", "ÔÙ", "ÔØ", "ÔÛ", _
  31.                             "ÔÕ", "ÔÏ", "Ô", "Í", "Ì", "Æ", "Ó", "Ò", "YÙ", "YØ", "YÛ", "YÕ", _
  32.                             "Î", "Ñ") ' Cua so viet code phai chon font chu Vni thi hien thi moi dung
  33.                            
  34.         loi = Array("aauø", "aaø", "aaoõ", "auø", "aoõ", "aeù", "aeø", "auuø", "aeâ", "uuø", "uoõ", _
  35.                             "öoõ", "eoõ", "AAUØ", "AAØ", "AAOÕ", "AUØ", "AOÕ", "AEÙ", "AEØ", "AUUØ", _
  36.                             "AEÂ", "UUØ", "UOÕ", "ÖOÕ", "EOÕ") ' Cua so viet code phai chon font chu Vni thi hien thi moi dung
  37.                            
  38.         suaLoi = Array("aá", "aà", "aã", "aù", "aõ", "aé", "aè", "aú", "aê", "uù", "uõ", "öõ", "eõ", "AÁ", _
  39.                                 "AÀ", "AÃ", "AÙ", "AÕ", "AÉ", "AÈ", "AÚ", "AÊ", "UÙ", "UÕ", "ÖÕ", "EÕ") ' Cua so viet code phai chon font chu Vni thi hien thi moi dung
  40.        
  41.         Uni2Vni = nhapUni
  42.         For i = 0 To 133
  43.             Uni2Vni = Replace(Uni2Vni, ChrW(maAcii(i)), Vni(i))
  44.         Next i
  45.        
  46.         For i = 0 To 25
  47.             Uni2Vni = Replace(Uni2Vni, loi(i), suaLoi(i))
  48.         Next i
  49.        
  50. End Function
  51.  


2. Hàm chuyển từ font Vni sang Unicode:
  1. Public Function Vni2Uni(nhapVni As String) As String    ' Vni --> Unicode
  2. '---------------------------------------------------------------------------------------
  3. ' Function : Vni2Uni
  4. ' Author    : phantronghiep07
  5. ' Phone     : 0915 080 282
  6. '---------------------------------------------------------------------------------------
  7.    Dim maAcii, Uni
  8.     Dim i As Integer
  9.    
  10.      maAcii = Array(7845, 7847, 7849, 7851, 7853, 226, 7843, 227, 7841, 7855, 7857, 7859, _
  11.                                 7861, 7863, 259, 250, 249, 7911, 361, 7909, 7913, 7915, 7917, 7919, 7921, 432, _
  12.                                 7871, 7873, 7875, 7877, 7879, 234, 233, 232, 7867, 7869, 7865, 7889, 7891, 7893, _
  13.                                 7895, 7897, 7887, 245, 7885, 7899, 7901, 7903, 7905, 7907, 417, _
  14.                                 237, 236, 7881, 297, 7883, 253, 7923, 7927, 7929, 7925, 273, 7844, 7846, 7848, _
  15.                                 7850, 7852, 194, 7842, 195, 7840, 7854, 7856, 7858, 7860, 7862, 258, _
  16.                                 218, 217, 7910, 360, 7908, 7912, 7914, 7916, 7918, 7920, 431, 7870, 7872, 7874, _
  17.                                 7876, 7878, 202, 201, 200, 7866, 7868, 7864, 7888, 7890, 7892, 7894, 7896, _
  18.                                 7886, 213, 7884, 7898, 7900, 7902, 7904, 7906, 416, 205, 204, 7880, 296, _
  19.                                 7882, 221, 7922, 7926, 7928, 7924, 272, 225, 224, 244, 243, 242, 193, 192, 212, 211, 210)
  20.                                
  21.      Vni = Array("aá", "aà", "aå", "aã", "aä", "aâ", "aû", "aõ", "aï", "aé", "aè", _
  22.                             "aú", "aü", "aë", "aê", "uù", "uø", "uû", "uõ", "uï", "öù", "öø", "öû", "öõ", _
  23.                             "öï", "ö", "eá", "eà", "eå", "eã", "eä", "eâ", "eù", "eø", "eû", "eõ", "eï", _
  24.                             "oá", "oà", "oå", "oã", "oä", "oû", "oõ", "oï", "ôù", "ôø", _
  25.                             "ôû", "ôõ", "ôï", "ô", "í", "ì", "æ", "ó", "ò", "yù", "yø", "yû", "yõ", "î", _
  26.                             "ñ", "AÁ", "AÀ", "AÅ", "AÃ", "AÄ", "AÂ", "AÛ", "AÕ", _
  27.                             "AÏ", "AÉ", "AÈ", "AÚ", "AÜ", "AË", "AÊ", "UÙ", "UØ", "UÛ", "UÕ", _
  28.                             "UÏ", "ÖÙ", "ÖØ", "ÖÛ", "ÖÕ", "ÖÏ", "Ö", "EÁ", "EÀ", "EÅ", _
  29.                             "EÃ", "EÄ", "EÂ", "EÙ", "EØ", "EÛ", "EÕ", "EÏ", "OÁ", "OÀ", "OÅ", _
  30.                             "OÃ", "OÄ", "OÛ", "OÕ", "OÏ", "ÔÙ", "ÔØ", "ÔÛ", _
  31.                             "ÔÕ", "ÔÏ", "Ô", "Í", "Ì", "Æ", "Ó", "Ò", "YÙ", "YØ", "YÛ", "YÕ", _
  32.                             "Î", "Ñ", "aù", "aø", "oâ", "où", "oø", "AÙ", "AØ", "OÂ", "OÙ", "OØ")
  33.                            
  34.         Vni2Uni = nhapVni
  35.         For i = 0 To 133
  36.             Vni2Uni = Replace(Vni2Uni, Vni(i), ChrW(maAcii(i)))
  37.        '     MsgBox Vni2Uni & i
  38.        Next i
  39.                            
  40. End Function
  41.  

Re: Chuyển đổi qua lại giữa UNICODE và VNI

Đã gửi: T.Hai 23/08/2010 8:57 am
gửi bởi pctester2020
Mình gõ vào Đoàn: uni -> vni, ok nhưng chuyển ngược lại vni-uni là Đồn. Đề nghị Fix

Re: Chuyển đổi qua lại giữa UNICODE và VNI

Đã gửi: T.Tư 25/08/2010 8:42 pm
gửi bởi phantronghiep07
Mình đã fix rồi đó.

Re: Chuyển đổi qua lại giữa UNICODE và VNI

Đã gửi: T.Năm 20/10/2011 3:01 pm
gửi bởi uppicsthao
Chào bạn, mình có nhu cầu chuyển từ database access sang foxpro nhưng khi chuyển dùng hàm của bạn thì bên fox đọc toàn mã không ra chính font được. Bạn có cách nào góp ý dùm nhé, cám ơn nhiều.

Re: Chuyển đổi qua lại giữa UNICODE và VNI

Đã gửi: T.Tư 12/09/2012 2:20 pm
gửi bởi txthang
Vậy nếu mình muốn chuyển font unicode tổ hợp thành font unidoce dựng sẵn thì làm thế nào vậy bro?