UE 使用自带的FBase64支持UTF8中文编码与解码


七龙 发布于 2024-07-02 / 117 阅读 / 0 评论 /
UE 使用自带的FBase64支持UTF8中文编码与解码 发现UE自带的FBase64不能直接解码中文字符也就是不支持UTF8编码 只需将编码时的FString进行编码,然后解码的时候从UTF8转为TCHAR #include "Misc/Base64.h" FString UEncodeLib:

UE 使用自带的FBase64支持UTF8中文编码与解码

发现UE自带的FBase64不能直接解码中文字符也就是不支持UTF8编码
只需将编码时的FString进行编码,然后解码的时候从UTF8转为TCHAR

#include "Misc/Base64.h"

FString UEncodeLib::FBase64Encode(FString Data)
{
	TArray<uint8> ByteArray;
	FTCHARToUTF8 StringSrc = FTCHARToUTF8(Data.GetCharArray().GetData());
	ByteArray.Append((uint8*)StringSrc.Get(), StringSrc.Length());
	return FBase64::Encode(ByteArray);
}

FString UEncodeLib::FBase64Decode(FString Data,bool& Success)
{
	FString Dest;
	TArray<uint8> ByteArray;
	Success = FBase64::Decode(Data, ByteArray);
	FUTF8ToTCHAR StringSrc = FUTF8ToTCHAR((const ANSICHAR*)ByteArray.GetData(), ByteArray.Num());
	Dest.AppendChars(StringSrc.Get(), StringSrc.Length() + 1);
	return Dest;
}


评论