How to check if an array of bytes is a valid UTF-8 string in VB.NET

1 Answer

0 votes
Imports System
Imports System.Text
 
Class ValidUTF8
	' Function to validate UTF-8 byte arrays
	Shared Function IsValidUTF8(s As Byte()) As Boolean
		Dim encoding As New UTF8Encoding(False, True)
        Try
        	encoding.GetCharCount(s)
        Catch ex As DecoderFallbackException
           	Return False
        End Try
            Return True
    End Function
    
	Public Shared Sub Main()
        Dim arr1 As Byte() = Encoding.UTF8.GetBytes("Hello, 世界")
        Dim arr2 As Byte() = {&HA3, &HED, &HFD}

        Console.WriteLine(IsValidUTF8(arr1))
        Console.WriteLine(IsValidUTF8(arr2))
    End Sub
End Class
 
 
' run:
'
' True
' False
'

 



answered Jul 8, 2025 by avibootz
...