singlebyte, multibyte, Unicode 이 3가지를 다 일일히 생각할 필요없이
Unreal에서는 TCHAR라는 통일된 문자열 형식으로 해결한다.
언리얼은 내부적으로 UTF-16, 즉 한문자당 통일되게 2byte를 할당해서 사용하고 있다.
문자열 인코딩의 역사에 관해 우선 먼저 알아보자 링크
MyGameInstance.h
#pragma once
#include "CoreMinimal.h"
#include "Engine/GameInstance.h"
#include "MyGameInstance.generated.h"
/**
*
*/
UCLASS()
class INFLEARN_TEST_API UMyGameInstance : public UGameInstance
{
GENERATED_BODY()
public:
// header는 전방선언 임으로 function body를 만들지 않게 유의하자!
virtual void Init() override;
private:
};
MyGameInstance.cpp
#include "MyGameInstance.h"
void UMyGameInstance::Init() {
Super::Init();
// TCHAR를 이용해서 TEXT 받기
TCHAR OutMessage[] = TEXT("Hello World");
UE_LOG(LogTemp, Warning, OutMessage);
// FString를 이용해서 TEXT 받기
FString OutFMessage = TEXT("Hello World FSTRING");
UE_LOG(LogTemp, Warning, TEXT("%s"), *OutFMessage);
// FString 값을 TCHAR에 할당하는 방법
const TCHAR* CharPtr = *OutFMessage;
}