UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ICUUtilities.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
8#include "Misc/Timespan.h"
10
11#if UE_ENABLE_ICU
13 #include <unicode/unistr.h>
15
16#ifndef WITH_ICU_V64
17 #define WITH_ICU_V64 0
18#endif
19
20namespace ICUUtilities
21{
22 // InternationalizationUtilities was split from ICUUtilities, so import its functions to avoid breaking existing code
23 using namespace InternationalizationUtilities;
24
30 {
31 public:
32 void ConvertString(const TCHAR* Source, const int32 SourceStartIndex, const int32 SourceLen, icu::UnicodeString& Destination, const bool ShouldNullTerminate);
33 void ConvertString(const icu::UnicodeString& Source, const int32 SourceStartIndex, const int32 SourceLen, FString& Destination);
34 };
35
41 {
42 public:
45
46 void ConvertString(const TCHAR* Source, const int32 SourceStartIndex, const int32 SourceLen, icu::UnicodeString& Destination, const bool ShouldNullTerminate);
47 void ConvertString(const icu::UnicodeString& Source, const int32 SourceStartIndex, const int32 SourceLen, FString& Destination);
48
49 private:
51 };
52
54 template <bool IsUnicode, size_t TCHARSize> struct FStringConverterImpl_PlatformSpecific { typedef FStringConverterImpl_ConvertToUnicodeString Type; };
55 template <> struct FStringConverterImpl_PlatformSpecific<true, 2> { typedef FStringConverterImpl_NativeUTF16 Type; }; // A unicode encoding with a wchar_t size of 2 bytes is assumed to be UTF-16
56 typedef FStringConverterImpl_PlatformSpecific<FPlatformString::IsUnicodeEncoded, sizeof(TCHAR)>::Type FStringConverterImpl;
57
63 {
64 public:
65 FStringConverter() = default;
66 FStringConverter(const FStringConverter&) = delete;
67 FStringConverter& operator=(const FStringConverter&) = delete;
68
70 void ConvertString(FStringView Source, icu::UnicodeString& Destination, const bool ShouldNullTerminate = true);
71 void ConvertString(const TCHAR* Source, const int32 SourceStartIndex, const int32 SourceLen, icu::UnicodeString& Destination, const bool ShouldNullTerminate = true);
72 icu::UnicodeString ConvertString(FStringView Source, const bool ShouldNullTerminate = true);
73 icu::UnicodeString ConvertString(const TCHAR* Source, const int32 SourceStartIndex, const int32 SourceLen, const bool ShouldNullTerminate = true);
74
76 void ConvertString(const icu::UnicodeString& Source, FString& Destination);
77 void ConvertString(const icu::UnicodeString& Source, const int32 SourceStartIndex, const int32 SourceLen, FString& Destination);
78 FString ConvertString(const icu::UnicodeString& Source);
79 FString ConvertString(const icu::UnicodeString& Source, const int32 SourceStartIndex, const int32 SourceLen);
80
81 private:
83 };
84
86 void ConvertString(FStringView Source, icu::UnicodeString& Destination, const bool ShouldNullTerminate = true);
87 void ConvertString(const TCHAR* Source, const int32 SourceStartIndex, const int32 SourceLen, icu::UnicodeString& Destination, const bool ShouldNullTerminate = true);
88 icu::UnicodeString ConvertString(FStringView Source, const bool ShouldNullTerminate = true);
89 icu::UnicodeString ConvertString(const TCHAR* Source, const int32 SourceStartIndex, const int32 SourceLen, const bool ShouldNullTerminate = true);
90
92 void ConvertString(const icu::UnicodeString& Source, FString& Destination);
93 void ConvertString(const icu::UnicodeString& Source, const int32 SourceStartIndex, const int32 SourceLen, FString& Destination);
94 FString ConvertString(const icu::UnicodeString& Source);
95 FString ConvertString(const icu::UnicodeString& Source, const int32 SourceStartIndex, const int32 SourceLen);
96
98 int32 GetNativeStringLength(const icu::UnicodeString& Source);
99 int32 GetNativeStringLength(const icu::UnicodeString& Source, const int32 InSourceStartIndex, const int32 InSourceLength);
100
104}
105#endif
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
#define THIRD_PARTY_INCLUDES_START
Definition GenericPlatformCompilerPreSetup.h:63
Type
Definition PawnAction_Move.h:11
Definition ExpressionParserTypes.h:21
Definition InternationalizationUtilities.cpp:9
Definition Voronoi.cpp:10