זיהוי קידוד קובץ
-
יש לי איזו פונקציה שמצאתי שמגלה קידוד של קובץ אבל זה לא פיתרון מושלם, האם יש למישהו נסיון עם זה ויוכל להוסיף?
תודה.Public Shared Function GetEncoding(ByVal filename As String) As Encoding ' Read the BOM Dim bom(3) As Byte Dim FS As New FileStream(filename, FileMode.Open) FS.Read(bom, 0, 4) FS.Close() ' Analyze the BOM If bom(0) = 43 AndAlso bom(1) = 47 AndAlso bom(2) = 118 Then Return Encoding.UTF7 End If If bom(0) = 239 AndAlso bom(1) = 187 AndAlso bom(2) = 191 Then Return Encoding.UTF8 End If If bom(0) = 255 AndAlso bom(1) = 254 Then Return Encoding.Unicode End If 'UTF-16LE If bom(0) = 254 AndAlso bom(1) = 255 Then Return Encoding.BigEndianUnicode End If 'UTF-16BE If bom(0) = 0 AndAlso bom(1) = 0 AndAlso bom(2) = 254 AndAlso bom(3) = 255 Then Return Encoding.UTF32 End If Dim UTF8 As String = File.ReadAllText(filename, Encoding.UTF8) If UTF8.Contains(ChrW(-3) & ChrW(-3) & ChrW(-3)) = True Then Return Encoding.Default End If Dim ASCII As String = File.ReadAllText(filename, Encoding.ASCII) If ASCII.Contains("????") = True Then Return Encoding.UTF8 End If Return Encoding.Default End Function
פורסם במקור בפורום CODE613 ב12/10/2013 21:30 (+03:00)