Nó khá phụ thuộc vào bản chất của các định dạng cổng dữ liệu nối tiếp. Nếu dữ liệu bao gồm hầu hết các ký tự văn bản ASCII xen kẽ với ký tự điều khiển không thường xuyên, thì bạn có thể nhúng chúng vào chuỗi, ví dụ:
var data1 = Encoding.ASCII.GetBytes("Foo\x1CBar\x1CBaz");
Tuy nhiên, nếu dữ liệu bao gồm nhiều trường dữ liệu khác nhau, thì lớp học BitConverter
có thể hữu ích hơn, ví dụ:
var data2 = new List<byte>();
// Add an int value
data2.AddRange(BitConverter.GetBytes(6));
// Add a control character
data2.Add(0x1C);
// Add an ASCII-encoded string value
data2.AddRange(Encoding.ASCII.GetBytes("Hello"));
Như những người khác đã chỉ ra, ASCII không phải là mã hóa chuỗi duy nhất bạn có thể sử dụng, nhưng từ cổng nối tiếp, có nhiều khả năng nhất.
Nguồn
2010-05-27 16:02:26
Trước khi trả lời câu hỏi của bạn, tôi sẽ quan tâm để biết lý do tại sao bạn đang cố gắng chuyển đổi chuỗi thành một mảng byte. –
Tôi đang viết một chức năng sẽ phân tích một mảng byte đến từ một cổng nối tiếp, nhưng tôi làm việc mù tại thời điểm này và không có bất kỳ dữ liệu thực tế để kiểm tra với. Vì tôi có tài liệu cho thấy định dạng tôi có thể tạo dữ liệu của riêng mình và tôi chỉ muốn viết nó thành chuỗi .Net, chuyển đổi thành mảng byte và sau đó phân tích cú pháp bằng cách sử dụng hàm của tôi. Nhưng có lẽ có một cách tốt hơn. Tôi cũng mở để gợi ý về điều đó. – JimDaniel