user2452250 user2452250 - 1 year ago 91 Question

Read a file line by line with VB.NET

The following code is used to read a file line by line.

It's just a very early version, so all I want to do is display the string in the immediate window. It's working fine, except that characters such as Ä Ü Ö è à and so on are replaced by a black square with a question mark. According to the documentation, the file reader should be compatible with UTF-8 chars so I don't know what is wrong.


Dim reader = File.OpenText(filetoimport.Text)

Dim line As String = Nothing

Dim lines As Integer = 0

While (reader.Peek() <> -1)
line = reader.ReadLine()
If line.StartsWith("<item key=""") Then
Dim Firstpart As String = Nothing

Firstpart = line.Substring(11, line.IndexOf(""" value=") - 11)


lines = lines + 1

Label3.Text = lines
Label3.Text = lines
End If

End While


The file is ANSI-encoded, not UTF-8, but the reader uses UTF-8.

Answer Source

Replaced the reader declaration with this one and now it works!

Dim reader As New StreamReader(filetoimport.Text, Encoding.Default)

Encoding.Default represents the ANSI code page that is set under Windows Control Panel.