Это основной вопрос, но я ничего не могу найти на нем, так как я не знаю, что искать - каждый из моих попыток придумал несвязанные результаты.Можно ли манипулировать массивами ASCII в виде массивов без преобразования в строковую форму?
Если я использую Text.Encoding.ASCII.GetBytes
для преобразования строки в ASCII, каждый байт представляет собой один символ? Является ли следующий код действительным в любых обстоятельствах (для всех Strings
, кроме примеров)?
Dim t1() As Byte = Text.Encoding.ASCII.GetBytes("Hello ")
Dim t2() As Byte = Text.Encoding.ASCII.GetBytes("World")
Dim msg As String = Text.Encoding.ASCII.GetString(t1.Concat(t2).ToArray)
Теперь msg
должен быть "Hello World"
.
Я бы хотел, чтобы это работало, поскольку я не хочу, чтобы преобразовывать данные, которые я возвращаю обратно в Strings
, чтобы управлять им до его отправки снова.
Что делать, если я использовал что-то другое, кроме ASCII (например, UTF-8)?
Если вы предпочитаете исключение для бесшумной потери данных через сменные символы (по умолчанию это?) при кодировании символа, который ASCII не поддерживает, вы можете создать собственный кодер (https://msdn.microsoft.com/en-us/library/ms404377 (v = vs.110) .aspx # Exception) на основе стандартного кодера ASCII. –