okay Tôi thấy câu hỏi từ những người hỏi cách chuyển mảng byte thành int
, string
, Stream
, v.v ... và câu trả lời tất cả đều khác nhau và cá nhân tôi không tìm thấy bất kỳ câu trả lời thỏa đáng nào.Làm thế nào để chuyển đổi mảng byte thành bất kỳ loại
Vì vậy, dưới đây là một số loại mà chúng tôi muốn chuyển đổi một mảng byte thành.
UnityEngine.Font
có thể lấy dữ liệu ttf
.
UnityEngine.Testure2D
mà h có thể mất dữ liệu từ các tập tin hình ảnh như .png
, .jpg
, vv ...
Làm sao chúng ta có thể chuyển đổi một mảng byte để một String
, UnityEngine.Testure2D,UnityEngine.Font
, Bitmap
, vv ...
Dữ liệu điền vào mảng byte phải từ một loại tệp có dữ liệu có thể được quản lý bởi loại chúng tôi muốn chuyển đổi mảng byte thành?
Hiện tại điều này có thể thực hiện được không?
Mọi trợ giúp sẽ được đánh giá cao.
Mảng byte chỉ là vậy. Đó là một chuỗi các byte. Không có cách nào để biết những byte đó thuộc về một chuỗi, một int, một 'UnityEngine.Font', vv Chúng chỉ là các byte. Bạn sẽ phải "deserialize" các byte bằng cách truyền tham số 'Type', vì vậy nó sẽ biết loại đối tượng đó là gì. – Icemanind
ooooooh tuyệt vời. bạn có thể đưa ra một ví dụ nhanh không? –
Không bao giờ chuyển đổi một mảng byte thành chuỗi trừ khi nó là một chuỗi. Có thể thực sự vít lên mã. Chrs/Strings là hai đối tượng byte trong Net và bạn phải cẩn thận để sử dụng mã hóa chính xác. Gửi/nhận dữ liệu thường được thực hiện bằng cách gửi một mảng byte. Bất kỳ đối tượng nào cũng phải được tuần tự hóa (nghĩa là chuyển đổi thành byte) và sau đó de-serialize. Dữ liệu nhị phân như .png và jpg là các đối tượng mảng byte đơn và có thể được chuyển đổi đơn giản thành mảng byte. Đối tượng phức tạp cần định nghĩa tốt hơn về kích thước của các trường trước khi được tuần tự hóa để chúng có thể được loại bỏ một cách chính xác. Đó là lý do tại sao bạn thấy các câu trả lời khác nhau. – jdweng