diff --git a/Dalamud/Game/Chat/SeStringHandling/Payloads/ItemPayload.cs b/Dalamud/Game/Chat/SeStringHandling/Payloads/ItemPayload.cs
index 78e82291a..d8bad2c0b 100644
--- a/Dalamud/Game/Chat/SeStringHandling/Payloads/ItemPayload.cs
+++ b/Dalamud/Game/Chat/SeStringHandling/Payloads/ItemPayload.cs
@@ -50,8 +50,6 @@ namespace Dalamud.Game.Chat.SeStringHandling.Payloads
// unk
bytes.AddRange(new byte[] { 0x02, 0x01, END_BYTE });
-
-
return bytes.ToArray();
}
diff --git a/Dalamud/Game/Chat/SeStringHandling/Payloads/TextPayload.cs b/Dalamud/Game/Chat/SeStringHandling/Payloads/TextPayload.cs
index 62ab70a40..161cd82db 100644
--- a/Dalamud/Game/Chat/SeStringHandling/Payloads/TextPayload.cs
+++ b/Dalamud/Game/Chat/SeStringHandling/Payloads/TextPayload.cs
@@ -11,7 +11,24 @@ namespace Dalamud.Game.Chat.SeStringHandling.Payloads
{
public override PayloadType Type => PayloadType.RawText;
- public string Text { get; set; }
+ private string textConverted = null;
+
+ ///
+ /// The Text of this text payload as an UTF-8 converted string.
+ /// Don't rely on this for accurate representation of SE payload data, please check RawData instead.
+ ///
+ public string Text {
+ get { return this.textConverted ??= Encoding.UTF8.GetString(RawData); }
+ set {
+ this.textConverted = value;
+ RawData = Encoding.UTF8.GetBytes(value);
+ }
+ }
+
+ ///
+ /// The raw unconverted data of this text payload.
+ ///
+ public byte[] RawData { get; set; }
public TextPayload() { }
diff --git a/Dalamud/Game/Internal/Gui/ChatGui.cs b/Dalamud/Game/Internal/Gui/ChatGui.cs
index 6ef458cb9..c9eb128c9 100644
--- a/Dalamud/Game/Internal/Gui/ChatGui.cs
+++ b/Dalamud/Game/Internal/Gui/ChatGui.cs
@@ -113,6 +113,7 @@ namespace Dalamud.Game.Internal.Gui {
Log.Verbose("SeString was edited, taking precedence over StdString edit.");
message.RawData = newEdited;
}
+ Log.Debug($"\nOLD: {BitConverter.ToString(originalMessageData)}\nNEW: {BitConverter.ToString(newEdited)}");
var messagePtr = pMessage;
OwnedStdString allocatedString = null;