Как получить последовательное байтовое представление строк в C# без ручного указания кодировки?
Это зависит от кодировки c# вашей строки (ASCII, UTF-8, ...).
Например:
byte[] b1 = System.Text.Encoding.UTF8.GetBytes (myString);
byte[] b2 = System.Text.Encoding.ASCII.GetBytes (myString);
Небольшой empty-string пример того, почему кодирование visual-c# имеет значение:
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 просто string-manipulation не приспособлен для работы dotnet со специальными символами.
Внутри c#.net .NET framework использует c# UTF-16 для представления строк, поэтому, если charset-table вы просто хотите получить c# точные байты, которые использует .net .NET, используйте System.Text.Encoding.Unicode.GetBytes (...)
.
См. Character Encoding in the .NET Framework (MSDN) для strings получения дополнительной strings информации.
c#
.net
string
character-encoding
Как получить последовательное байтовое представление строк в C# без ручного указания кодировки?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.