Декодировка данных из CSV файла - Visual Basic .NET
Формулировка задачи:
Добрый день. Проблема заключается в следующем:
В файле формата .csv находятся закодированные данные в кодировке ascii, я пытаюсь их декодировать и записать обратно в этот же файл с помощью:
Но русские буквы закодированные в ascii декодируются в полную тарабарщину, как это исправить?
Листинг программы
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- Dim Mass() As String
- Mass = IO.File.ReadAllLines(TextBox1.Text)
- Dim str1 As String
- Dim str2 As String
- Dim str3 As String
- str1 = Split(Mass(1), ";")(0)
- str2 = Split(Mass(1), ";")(1)
- str3 = Split(Mass(1), ";")(2)
- For i As Integer = 1 To Mass.Length - 1
- ' str1 = Split(Mass(i), ";")(0)
- 'str2 = Split(Mass(i), ";")(1)
- ' str3 = Split(Mass(i), ";")(2)
- Dim bytes1 As Byte() = str1.Split(" "c).Select(Function(n) Convert.ToByte(Convert.ToInt64(n, 10))).ToArray()
- Dim bytes2 As Byte() = str2.Split(" "c).Select(Function(n) Convert.ToByte(Convert.ToInt64(n, 10))).ToArray()
- Dim bytes3 As Byte() = str3.Split(" "c).Select(Function(n) Convert.ToByte(Convert.ToInt64(n, 10))).ToArray()
- Dim value1 As String = System.Text.ASCIIEncoding.ASCII.GetString(bytes1)
- Dim value2 As String = System.Text.ASCIIEncoding.ASCII.GetString(bytes2)
- Dim value3 As String = System.Text.ASCIIEncoding.ASCII.GetString(bytes3)
- Dim nov_i As String = String.Join(";", value1, value2, value2)
- Mass(i) = nov_i
- Next
- IO.File.WriteAllLines(TextBox1.Text, Mass)
- End Sub
- End Class
Решение задачи: «Декодировка данных из CSV файла»
textual
Листинг программы
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- Dim enc As Encoding = Encoding.GetEncoding(1251)
- Dim Mass() As String = IO.File.ReadAllLines(TextBox1.Text, enc)
- For i As Integer = 0 To Mass.Length - 1
- Dim parts() As String = Mass(i).Split(";")
- For j As Integer = 0 To parts.Length-1
- parts(j) = """" & enc.GetString(parts(j).TrimStart("""").TrimEnd("""").Split(" ").Select(Function(n) Convert.ToByte(n, 10)).ToArray()) & """"
- Next
- Mass(i) = String.Join(";", parts)
- Next
- IO.File.WriteAllLines(TextBox1.Text, Mass, enc)
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д