一.整体理解,细节查看官方文档
1.UE中的编码 一般分为
- ANSI ; 2. UTF-8; 3.UE自己的编码(UE所有字符串FString,TCHAR:UTF-16格式存储在内存中); 4. 二进制
三个转化宏,宏的生命周期短,主要作为函数参数。它基本能胜任上述123的互相编码转换

虚幻引擎字符编码 | 虚幻引擎 5.7 文档 | Epic Developer Community
网络端,同步需要解码,编码来支持
2.FString
虚幻引擎中的FString | 虚幻引擎 5.7 文档 | Epic Developer Community
开头FString 更万能,并且它本身有TChar* 类型的数组

和其它第三方通信,需要转换编码。加密处理等。
TEXT()宏可以,增加字符串高度。方便TCHAR的转换
FString 可以转换为 其它类型变量 很全,官方文档总结的很清楚。float ,int ,bool 等
FString 是TCHAR* 数组,所以很多方法和TArray有类似。
两种典型的打日志,都用的FString:UE_LOG , 和 AddOnScreenDebugMessage
操作字符串,拼接切割从左从右读等,在网络传输时解析,很有用。
转换宏编码,小心生命周期

3.FName
虚幻引擎中的FName | 虚幻引擎 5.7 文档 | Epic Developer Community
用于资产命名,典型的场景有 改动态实例的参数,访问骨骼网格体的骨骼,当然骨骼Socket也用FName。不区分大小写,占唯一内存。作为索引组合存储在唯一字符串和实例编号的表格中
== 好,它不执行字符串的对比,而是对比索引中的数值,毕竟它们是唯一的,节约了CPU开销。
4.FText
虚幻引擎中的FText | 虚幻引擎 5.7 文档 | Epic Developer Community
UI,本地化经常用到。
二.转化,很早之前也写过转换的文章。UE5 C++学习笔记 FString FName FText相互转换_fstring 转 fname-CSDN博客可以结合看
cpp
void AWXStringActor::InitialString()
{
FString TestString = TEXT("This is a Test");
//这下好记住了,FString 很万能
//FSring -> FName
FName TestName = FName(*TestString);
//FString->FText
FText TestText = FText::FromString(TestString);
//FName -> FString
FString BackString = TestName.ToString();
//FText -> FString
FString BackString2 = TestText.ToString();
// Name 可直接 FText ,单Text 却要 经过FString中间商
//
//FName->FText
//FText BackText =FText::FromString(TestName.ToString());饶了不需要
FText BackText2 = FText::FromName(TestName);
// FText-> FName
FName TestName2 = FName(TestText.ToString());
int32 a = 1;
}