Tại sao cần chuyển đối chuổi từ UTF8 sang Unicode VBA Excel
Vì khi file excel đọc nội dung từ code VBA các file có nội dung dạng UTF8 thì khi hiển thị ra sheet excel làm không đọc được mà ta chuyển chuyển sang Unicode
Thường ứng dụng trong việc đọc giá trị 1 file txt hay csv, sau đó nạp vào sheet để xem nhưng không đọc được tiếng việt, ta sử dụng hàm sau
Function UTF8_Decode(ByVal sStr)
Dim l As Long, sUTF8 As String, iChar As Integer, iChar2 As Integer
For l = 1 To Len(sStr)
iChar = Asc(Mid(sStr, l, 1))
If iChar > 127 Then
If Not iChar And 32 Then ' 2 chars
iChar2 = Asc(Mid(sStr, l + 1, 1))
sUTF8 = sUTF8 & ChrW$(((31 And iChar) * 64 + (63 And iChar2)))
l = l + 1
Else
Dim iChar3 As Integer
iChar2 = Asc(Mid(sStr, l + 1, 1))
iChar3 = Asc(Mid(sStr, l + 2, 1))
sUTF8 = sUTF8 & ChrW$(((iChar And 15) * 16 * 256) + ((iChar2 And 63) * 64) + (iChar3 And 63))
l = l + 2
End If
Else
sUTF8 = sUTF8 & Chr$(iChar)
End If
Next l
UTF8_Decode = sUTF8
End Function
Chuyển đổi UTF8 sang Unicode VBA Excel