Chuyển đổi UTF8 sang Unicode VBA Excel

Chuyển đổi UTF8 sang Unicode VBA Excel

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

Bài viết liên quan:

Chuyển đổi UTF8 sang Unicode VBA Excel