Not sure why it would be three bytes. Try using “FTCHARToUTF8”. I see in the engine source that this is how they convert. Here’s what you should try:
FTCHARToUTF8 Converted(*StringValue);
Socket->Send((uint8*)Converted.Get(), Converted.Length(), SocketSent);
You will need to add #include "StringConv.h"
as well