From afec6afe4c9e9d57c903fd1e363db5258f6bc06d Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Sun, 3 Sep 2023 14:04:46 +0300 Subject: [PATCH] Fix managed UTF-8 string allocation not using correct encoding --- Source/Engine/Engine/NativeInterop.Unmanaged.cs | 4 ++-- Source/Engine/Scripting/Runtime/DotNet.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Engine/Engine/NativeInterop.Unmanaged.cs b/Source/Engine/Engine/NativeInterop.Unmanaged.cs index 879f804d2..2c1bab744 100644 --- a/Source/Engine/Engine/NativeInterop.Unmanaged.cs +++ b/Source/Engine/Engine/NativeInterop.Unmanaged.cs @@ -581,9 +581,9 @@ namespace FlaxEngine.Interop } [UnmanagedCallersOnly] - internal static IntPtr NewStringLength(sbyte* text, int length) + internal static IntPtr NewStringUTF8(sbyte* text, int length) { - return ManagedString.ToNativeWeak(new string(text, 0, length)); + return ManagedString.ToNativeWeak(new string(text, 0, length, System.Text.Encoding.UTF8)); } [UnmanagedCallersOnly] diff --git a/Source/Engine/Scripting/Runtime/DotNet.cpp b/Source/Engine/Scripting/Runtime/DotNet.cpp index f4ae5b1ec..1bcef50b8 100644 --- a/Source/Engine/Scripting/Runtime/DotNet.cpp +++ b/Source/Engine/Scripting/Runtime/DotNet.cpp @@ -365,8 +365,8 @@ MString* MCore::String::GetEmpty(MDomain* domain) MString* MCore::String::New(const char* str, int32 length, MDomain* domain) { - static void* NewStringLengthPtr = GetStaticMethodPointer(TEXT("NewStringLength")); - return (MString*)CallStaticMethod(NewStringLengthPtr, str, length); + static void* NewStringUTF8Ptr = GetStaticMethodPointer(TEXT("NewStringUTF8")); + return (MString*)CallStaticMethod(NewStringUTF8Ptr, str, length); } MString* MCore::String::New(const Char* str, int32 length, MDomain* domain)