c # Эквивалентно VB6 'StrConv' - PullRequest
3 голосов
/ 03 мая 2011

Я хочу преобразовать строку в байтовый массив. (Да) Я видел несколько вопросов, уже заданных по этой теме, но я не нашел ответы на них слишком полезными. В большинстве случаев вопросов было достаточно. Я провел некоторое исследование, и я опубликую свои выводы ниже.

Это все способы, которые я нашел для преобразования строки в байтовый массив в C # .net. Многие из них были написаны мной самостоятельно.

1)

private byte[] getByte(string s)
          {
                 Byte[] b = new byte[s.Length];

                 for (int i = 0; i < s.Length; i++)
                 {
                       char c = Convert.ToChar(s.Substring(i, 1));
                       b[i] = Convert.ToByte(c);
                 }
                 return b;
          }

2)

System.Text.ASCIIEncoding  encoding=new System.Text.ASCIIEncoding();
        Byte[] bytes = encoding.GetBytes(yourString)

3) ** Конечно, есть метод file.ReadAllBytes, но я не читаю эти данные из файла.

Итак, кто-нибудь здесь знает C #, эквивалентный следующему (который является VB6)?

Dim sData as string
Dim b() as byte
sData = "Test String in VB6"
b() = strconv(sData, VbFromUnicode)

Большое спасибо. Я с нетерпением жду некоторых замечательных ответов!

Ответы [ 3 ]

5 голосов
/ 03 мая 2011

Ваш вариант 2 почти на месте, вам просто нужно изменить кодер

System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
byte[] unicodeStringAsBytes = UTF8.GetBytes(myString);
5 голосов
/ 03 мая 2011
System.Text.UTF8Encoding  encoding=new System.Text.UTF8Encoding();
return encoding.GetBytes(str);
1 голос
/ 03 мая 2011

1001 * попробовать *

return System.Text.Encoding.UTF8.GetBytes(yourString);
...