Availability: Public Title:String Handling Crumbs:%ROOT%, Programming, Programming/UnrealArchitecture/Reference, Programming/UnrealArchitecture/Reference/Properties Description: An overview of the string classes available in UE4 and reference guides for FName, FText, and FString Version: 4.9 ### FName [INCLUDE:Programming/UnrealArchitecture/StringHandling/FName#overview] * [FName Reference Guide](Programming/UnrealArchitecture/StringHandling\FName) ### FText [INCLUDE:Programming/UnrealArchitecture/StringHandling/FText#overview] * [FText Reference Guide](Programming/UnrealArchitecture/StringHandling\FText) ### FString [INCLUDE:Programming/UnrealArchitecture/StringHandling/FString#overview] * [FString Reference Guide](Programming/UnrealArchitecture/StringHandling\FString) ## Conversions |From | To | Example | |---|------|---------| %fnametofstring% %fnametoftext% %fstringtofname% %fstringtoftext% %ftexttofstring% %ftexttofname% [VAR:FNameToFString] |FName | FString | `TestHUDString = TestHUDName.ToString();` | [/VAR] [VAR:FNameToFText] |FName | FText | `TestHUDText = FText::FromName(TestHUDName);` [REGION:warning] FName -> FText is valid in some cases, but be aware that the FNames's content will not benefit from the FText's "auto localization". [/REGION] | [/VAR] [VAR:FStringToFName] |FString | FName | `TestHUDName = FName(*TestHUDString);` [REGION:warning] FString -> FName is dangerous as the conversion is lossy as FName's are case insensitive. [/REGION]| [/VAR] [VAR:FStringToFText] |FString | FText | `TestHUDText = FText::FromString(TestHUDString);` [REGION:warning] FString -> FText is valid in some cases, but be aware that the FString's content will not benefit from the FText's "auto localization". [/REGION] | [/VAR] [VAR:FTextToFString] |FText | FString| `TestHUDString = TestHUDText.ToString();` [REGION:warning] FText -> FString is dangerous as it is a potentially lossy conversion for some languages. [/REGION]| [/VAR] [VAR:FTextToFName] |FText | FName | There is no direct conversion from FText to FName. Instead, convert to FString and then to FName. [REGION:warning] FText -> FString -> FName is dangerous as the conversion is lossy as FName's are case insensitive. [/REGION]| [/VAR] ## Encoding In general, you should be using the **TEXT()** macro when setting string variable literals. If you do not specify the TEXT() macro, your literal will be encoded using ANSI, which is highly limited in what characters it supports. Any ANSI literals being passed into FString need to undergo a conversion to TCHAR (native Unicode encoding), so it is more efficient to use TEXT(). For more about encoding, see the [](Programming\UnrealArchitecture\StringHandling\CharacterEncoding) documentation.