user2452250 user2452250 - 11 months ago 67 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.


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.