首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

AS3 ByteArray 讀寫轉 C#:Int32 與 UTF 字符串序列化互操作

     編輯:程式設計綜合問答

AS3 寫入邏輯


var bytes:ByteArray = new ByteArray();
bytes.writeInt(10);        // 4 字節大端序
bytes.writeUTF("123");     // 2 字節長度 + UTF-8 字節

C# 讀取對應代碼


byte[] data = File.ReadAllBytes(@"x:\xxx.bin");
// 讀 Int32 (大端序需轉換)
int x = BinaryPrimitives.ReadInt32BigEndian(data.AsSpan(0, 4));
// 或使用 BitConverter (小端系統需反轉)
// int x = BitConverter.ToInt32(data, 0); // 若 AS3 用 writeInt (大端) 需手動反轉

// 讀 UTF 字符串
int strLen = BinaryPrimitives.ReadUInt16BigEndian(data.AsSpan(4, 2));
string s = Encoding.UTF8.GetString(data, 6, strLen);

關鍵點

  • 端序:AS3 ByteArray 默認大端;C# BitConverter 默認小端。需使用 BinaryPrimitives.ReadInt32BigEndian (.NET Core 2.1+) 或手動反轉字節。
  • UTF 格式:writeUTF 寫入 2 字節無符號長度 + UTF-8 字節,非標準 UTF-8 BOM。
  • 流位置:讀取後需手動維護偏移量,或使用 MemoryStream + BinaryReader 封裝。

最佳回答

byte[] data = File.ReadAllBytes("x:\xxx.bin").ToArray();
int x = BitConverter.ToInt32(data, 0);
string s = Encode.GetEncoding("UTF-8").GetString(x.Skip(4).ToArray());

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved