チェックしたいバイト配列をUTF8エンコードして、それをまたバイト配列に戻します。
UTF8エンコードできなかった文字は、元のコードには戻らないので
元の配列と比較するとコードが異なっているのでUTF8に存在しない文字とみなす
という考え方で判定しています
【ソース例】
'チェックするUTF8文字のバイト配列
Dim chkbyte As Byte() = {Convert.ToInt16("E3", 16) _
, Convert.ToInt16("81", 16) _
, Convert.ToInt16("81", 16) _
, Convert.ToInt16("FF", 16) _
, Convert.ToInt16("00", 16) _
}
'UTF8にする
Dim dt As String
dt = System.Text.Encoding.UTF8.GetString(chkbyte)
'バイト配列に戻す
Dim re As Byte() = System.Text.Encoding.UTF8.GetBytes(dt)
'配列を比較
Dim isEqual As Boolean = DirectCast(chkbyte, IStructuralEquatable).Equals( _
re, StructuralComparisons.StructuralEqualityComparer)
'元のバイト配列と変換後のバイト配列が異なっていたらエラーとする
If isEqual = False Then
MsgBox(" utf文字コードエラー")
End If
実際にはファイルを読み込んでチェックしたりすると思いますが
その場合は、ファイルをバイト配列に読み込んでください。