неверный результат символа после прочтения Zürich VB.net

У меня возникла проблема с написанием строки, похожей на слово «Цюрих», вывод стал «Цюрих».

Я использую StreamReader и StreamWriter.

Любой может помочь мне с этим.

Код: ниже

Imports System
Imports System.IO
Imports System.Text
Module Module1

    Sub Main()
        Dim sReport As String       
        Dim strline As String
        Dim objSR As StreamReader
        Dim objSW As StreamWriter
        sReport = "C:\InvalidChar1.txt"
        Try

            objSW = New StreamWriter(sReport)

            objSR = New StreamReader("C:\InvalidChar.txt")

            Do
                strline = objSR.ReadLine

                objSW.WriteLine(strline)

            Loop While objSR.EndOfStream <> True


            objSW.Close()
            objSR.Close()

        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub

End Module

person user870510    schedule 13.02.2012    source источник
comment
Что вы используете для чтения файла? Какая кодировка?   -  person Oded    schedule 13.02.2012
comment
@Oded Я обновляю свой пост, код есть.   -  person user870510    schedule 13.02.2012
comment
Какая исходная кодировка файла? Как вы его создали и в какой кодировке?   -  person Oded    schedule 13.02.2012


Ответы (1)


По умолчанию и StreamReader, и StreamWriter будут использовать кодировку UTF-8.

Если это не исходная кодировка файла, я ожидаю увидеть эти проблемы — убедитесь, что файл является файлом UTF-8.

person Oded    schedule 13.02.2012
comment
исправить проблему: объявив Dim objSW как New StreamWriter(sReport, False, Encoding.Default) objSR = New StreamReader(sIn, Encoding.Default) - person user870510; 13.02.2012
comment
@ user870510 — это означает, что исходный файл был в кодировке UTF16. - person Oded; 13.02.2012
comment
еще одна вещь, что за персонаж ü - person user870510; 13.02.2012
comment
@ user870510 — Похоже на u с умлаутом. - person Oded; 13.02.2012
comment
@odel, чтобы я мог позвонить, это UTF16? - person user870510; 13.02.2012
comment
@ user870510 - Нет. UTF16 и UTF8 - это кодировки Unicode. Они оба смогут закодировать этот символ. - person Oded; 13.02.2012
comment
@ user870510 - Персонаж есть персонаж. Вы можете кодировать его как угодно. Юникод — это не кодировка — это стандарт, сопоставляющий символы с определенными значениями. UTF8 и UTF16 — это некоторые кодировки Unicode. Размещенный вами персонаж - ü определен в стандарте. Я считаю, что это u с умлаутом. - person Oded; 13.02.2012
comment
@ user870510 - Меня зовут Одед. Не Одель. - person Oded; 13.02.2012