Кодировка выходной строки плохо работает с русскими буквами - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Вечер добрый! Пытаюсь написать преобразователь по типу binary -> text \ text -> binary Итак, преобразую то, что имею в двоичную кашу
Листинг программы
  1. Dim Val As String = Nothing
  2. Dim Result As New System.Text.StringBuilder
  3. For Each Character As Byte In System.Text.ASCIIEncoding.ASCII.GetBytes(TextBox1.Text)
  4. Result.Append(Convert.ToString(Character, 2).PadLeft(8, "0"))
  5. Result.Append(" ")
  6. Next
  7. Val = Result.ToString.Substring(0, Result.ToString.Length - 1)
  8. TextBox2.Text = Val
Готово, затем меняю это местами
Листинг программы
  1. TextBox1.Text = TextBox2.Text
  2. TextBox2.Clear()
И прогоняю этим:
Листинг программы
  1. Dim Val As String = Nothing
  2. Dim Characters As String = System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, "[^01]", "")
  3. Dim ByteArray((characters.Length / 8) - 1) As Byte
  4. For Index As Integer = 0 To ByteArray.Length - 1
  5. ByteArray(Index) = Convert.ToByte(Characters.Substring(Index * 8, 8), 2)
  6. Next
  7. Val = System.Text.ASCIIEncoding.ASCII.GetString(ByteArray)
  8. TextBox2.Text = Val
И так, все замечательно, все кодируется и декодируется, кроме русских символов. Где моя ошибка? в кодироке? или декодировке?

Решение задачи: «Кодировка выходной строки плохо работает с русскими буквами»

textual
Листинг программы
  1. Dim bytes() As Byte = Encoding.UTF8.GetBytes(TextBox1.Text)
  2. Dim Result As New StringBuilder(bytes.Length*8 + bytes.Length - 1)
  3. Result.Append(Convert.ToString(bytes(0), 2).PadLeft(8, "0"))
  4. For I As Integer = 1 To bytes.Length - 1
  5.     Result.Append(" ")
  6.     Result.Append(Convert.ToString(bytes(I), 2).PadLeft(8, "0"))
  7. Next
  8. TextBox2.Text = Result.ToString

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы