Это зависит от кодирования Вашей строки ( ASCII, UTF-8...).
, Например:
byte[] b1 = System.Text.Encoding.UTF8.GetBytes (myString);
byte[] b2 = System.Text.Encoding.ASCII.GetBytes (myString);
небольшая выборка А, почему кодирование имеет значение:
string pi = "\u03a0";
byte[] ascii = System.Text.Encoding.ASCII.GetBytes (pi);
byte[] utf8 = System.Text.Encoding.UTF8.GetBytes (pi);
Console.WriteLine (ascii.Length); //Will print 1
Console.WriteLine (utf8.Length); //Will print 2
Console.WriteLine (System.Text.Encoding.ASCII.GetString (ascii)); //Will print '?'
ASCII просто не оборудован для контакта со специальными символами.
Внутренне, использование платформы.NET UTF-16 для представления строк, поэтому если Вы просто хотите получить точные байты, которые использует.NET, используйте System.Text.Encoding.Unicode.GetBytes (...)
.
См. Кодировка символов в Платформе.NET (MSDN) для получения дополнительной информации.
Программно или как пользователь?
Для последнего: Control + Shift + Eject.