Private Function ConvertStr(Txt As String, Optional isReversed As Boolean = False) As String ' true la TCVN sang UNICODE Dim IStr$, i%, UN, VN
IStr = Txt
UN = Array(225, 224, 7843, 227, 7841, 259, 7855, 7857, 7859, 7861, 7863, 226, _
7845, 7847, 7849, 7851, 7853, 233, 232, 7867, 7869, 7865, 234, 7871, 7873, 7875, _
7877, 7879, 237, 236, 7881, 297, 7883, 243, 242, 7887, 245, 7885, 244, 7889, 7891, _
7893, 7895, 7897, 417, 7899, 7901, 7903, 7905, 7907, 250, 249, 7911, 361, 7909, _
432, 7913, 7915, 7917, 7919, 7921, 253, 7923, 7927, 7929, 7925, 273, 193, 192, 195, _
258, 194, 212, 416, 431, 272)
VN = Array(184, 181, 182, 183, 185, 168, 190, 187, 188, 189, 198, 169, 202, 199, 200, _
201, 203, 208, 204, 206, 207, 209, 170, 213, 210, 211, 212, 214, 221, 215, 216, 220, _
222, 227, 223, 225, 226, 228, 171, 232, 229, 230, 231, 233, 172, 237, 234, 235, 236, _
238, 243, 239, 241, 242, 244, 173, 248, 245, 246, 247, 249, 253, 250, 251, 252, 254, _
174, 193, 192, 195, 161, 162, 164, 165, 166, 167)
For i = 0 To 75
If isReversed And InStr(Txt, ChrW(UN(i))) <> 0 Then
IStr = Replace(IStr, ChrW(UN(i)), "[" & VN(i) & "]")
ElseIf InStr(IStr, ChrW(VN(i))) <> 0 Then
IStr = Replace(IStr, ChrW(VN(i)), "[" & UN(i) & "]")
End If
Next
If Len(IStr) <> Len(Txt) Then
For i = 0 To 75
If isReversed Then
IStr = Replace(IStr, "[" & VN(i) & "]", ChrW(VN(i)))
Else
IStr = Replace(IStr, "[" & UN(i) & "]", ChrW(UN(i)))
End If
Next
End If
ConvertStr = IStr
End Function