Revision: 58592
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 23, 2012 18:18 by ShaneGowland
Initial Code
Private Function is_unicode(ByVal path As String) As Boolean
Dim enc As System.Text.Encoding = Nothing
Dim file As System.IO.FileStream = New System.IO.FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)
If file.CanSeek Then
Dim bom As Byte() = New Byte(3) {} ' Get the byte-order mark, if there is one
file.Read(bom, 0, 4)
If (bom(0) = &HEF AndAlso bom(1) = &HBB AndAlso bom(2) = &HBF) OrElse (bom(0) = &HFF AndAlso bom(1) = &HFE) OrElse (bom(0) = &HFE AndAlso bom(1) = &HFF) OrElse (bom(0) = 0 AndAlso bom(1) = 0 AndAlso bom(2) = &HFE AndAlso bom(3) = &HFF) Then ' ucs-4
Return True
Else
Return False
End If
' Now reposition the file cursor back to the start of the file
file.Seek(0, System.IO.SeekOrigin.Begin)
Else
Return False
End If
End Function
Initial URL
Initial Description
The .NET Framework doesn't support automatic detection of character encoding in the default file I/O methods. This is a quick function that returns True in the specified file is Unicode.
Initial Title
Determine if text file is Unicode encoded
Initial Tags
file, text
Initial Language
VB.NET