Determine if text file is Unicode encoded

/ Published in: VB.NET
Save to your folder(s)

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.

Copy this code and paste it in your HTML
  1. Private Function is_unicode(ByVal path As String) As Boolean
  2. Dim enc As System.Text.Encoding = Nothing
  3. Dim file As System.IO.FileStream = New System.IO.FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)
  4. If file.CanSeek Then
  5. Dim bom As Byte() = New Byte(3) {} ' Get the byte-order mark, if there is one
  6. file.Read(bom, 0, 4)
  7. 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
  8. Return True
  9. Else
  10. Return False
  11. End If
  13. ' Now reposition the file cursor back to the start of the file
  14. file.Seek(0, System.IO.SeekOrigin.Begin)
  15. Else
  16. Return False
  17. End If
  18. End Function

Report this snippet


RSS Icon Subscribe to comments

You need to login to post a comment.