diff --git a/SabreTools.Serialization/Deserializers/CFB.cs b/SabreTools.Serialization/Deserializers/CFB.cs index ce5ba0a5..a78896d0 100644 --- a/SabreTools.Serialization/Deserializers/CFB.cs +++ b/SabreTools.Serialization/Deserializers/CFB.cs @@ -244,7 +244,7 @@ namespace SabreTools.Serialization.Deserializers var obj = new DirectoryEntry(); byte[] name = data.ReadBytes(64); - obj.Name = Encoding.Unicode.GetString(name).DecodeStreamName(); + obj.Name = Encoding.Unicode.GetString(name).DecodeStreamName()?.TrimEnd('\0'); obj.NameLength = data.ReadUInt16LittleEndian(); obj.ObjectType = (ObjectType)data.ReadByteValue(); obj.ColorFlag = (ColorFlag)data.ReadByteValue(); diff --git a/SabreTools.Serialization/Extensions.CFB.cs b/SabreTools.Serialization/Extensions.CFB.cs index dca66b71..752c9fa8 100644 --- a/SabreTools.Serialization/Extensions.CFB.cs +++ b/SabreTools.Serialization/Extensions.CFB.cs @@ -57,7 +57,7 @@ namespace SabreTools.Serialization } output[q] = 0; - return Encoding.ASCII.GetString(output); + return Encoding.UTF8.GetString(output); } /// diff --git a/SabreTools.Serialization/Printers/CFB.cs b/SabreTools.Serialization/Printers/CFB.cs index c26516f5..25dd12e7 100644 --- a/SabreTools.Serialization/Printers/CFB.cs +++ b/SabreTools.Serialization/Printers/CFB.cs @@ -103,6 +103,8 @@ namespace SabreTools.Serialization.Printers builder.AppendLine($" Directory Entry {i}"); builder.AppendLine(entry.Name?.TrimEnd('\0'), " Name"); + if (entry.Name != null) + builder.AppendLine(Encoding.UTF8.GetBytes(entry.Name), " Name (bytes)"); builder.AppendLine(entry.NameLength, " Name length"); builder.AppendLine($" Object type: {entry.ObjectType} (0x{entry.ObjectType:X})"); builder.AppendLine($" Color flag: {entry.ColorFlag} (0x{entry.ColorFlag:X})");