an toàn nhất cách tuyệt đối để chuyển đổi byte vào một chuỗi và trở lại là sử dụng base64:
string base64 = Convert.ToBase64String(bytes);
byte[] bytes = Convert.FromBase64String(base64);
Bằng cách đó bạn sẽ được bảo đảm không để có được chuỗi unicode "không hợp lệ" như nửa đầu của một đại diện cặp mà không có nửa thứ hai. Không có gì sẽ quyết định để bình thường hóa dữ liệu vào một cái gì đó kỳ lạ (đó là tất cả ASCII). Không có cơ hội sử dụng các điểm mã không được đăng ký trong Unicode, hoặc bất cứ thứ gì như thế. Ồ, và bạn có thể cắt và dán mà không sợ nhiều.
Có, bạn kết thúc với 4 ký tự cho mỗi 3 byte - nhưng đó là một mức giá nhỏ để trả tiền cho kiến thức rằng dữ liệu của bạn sẽ không bị hỏng.
Nguồn
2009-07-15 23:46:11
@Mehrdad et al, đây không phải là câu hỏi giống như "Chuỗi .NET đến byte mảng C#". Câu hỏi ở đây là - làm cách nào để chuyển đổi từ mảng byte thành chuỗi và quay lại, an toàn. Tôi sử dụng mã hóa Latin1 "huyền diệu" (Encoding.GetEncoding (28591)) mà dường như tôn trọng byte => string => byte độc đáo. – Liam