Читать файл построчно с VB.NET

следующий код используется для чтения файла строка за строкой.

Это просто очень ранняя версия, поэтому все, что я хочу сделать, это отобразить строку в окне immediate. Он работает нормально, за исключением того, что символы, такие как Ä Ü Ö è à и так далее, заменяются черным квадратом с вопросительным знаком. Согласно документации, считыватель файлов должен быть совместим с символами UTF-8, поэтому я не знаю, что не так.

...

    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)

            Debug.WriteLine(Firstpart)

            lines = lines + 1

            Label3.Text = lines
            Application.DoEvents()
        Else
            Label3.Text = lines
            Application.DoEvents()
        End If

    End While

...

файл закодирован ANSI, а не UTF-8, но читатель использует UTF-8.

2 ответов


такой... Я использовал его, чтобы читать китайские иероглифы...

Dim reader as StreamReader = My.Computer.FileSystem.OpenTextFileReader(filetoimport.Text)
Dim a as String

Do
   a = reader.ReadLine
   '
   ' Code here
   '
Loop Until a Is Nothing

reader.Close()

заменил декларацию reader на эту, и теперь она работает!

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

кодировка.По умолчанию представляет кодовую страницу ANSI, заданную в Панели управления Windows.