묻공러
언리얼 문자열 - TCHAR, FString
묻공러
묻지마공부
묻공러
전체
오늘
어제
  • 분류 전체보기 (535) N
    • C (54)
      • [코드조선] C 핵심 (35)
      • [언어본색] C 기초 (19)
    • C++ (72)
      • [루키스] C++ (9)
      • [루키스] 콜백함수 (6)
      • [루키스] STL (8)
      • [루키스] Modern C++ (11)
      • [노코프] C++ (10)
      • [노코프] Tips (16)
      • [일지] C++ (12)
    • C# (20)
      • [루키스] C# (9)
      • [루키스] 자료구조 (3)
      • [루키스] 실전 문법 (8)
    • 자료구조 & 알고리즘 (50)
      • [코드조선] C 자료구조 & 알고리즘 (6)
      • [합격자되기] C++ 코딩테스트 (12)
      • [루키스] C++ 자료구조 & 알고리즘 (32)
    • CS (69)
      • [널널한 개발자] CS 개론 (19)
      • [혼자 공부하는] 컴퓨터 구조 (16)
      • [혼자 공부하는] 운영체제 (18)
      • [널널한 개발자] 네트워크 (16)
    • 게임 그래픽스 (46)
      • [전북대] OpenGL (25)
      • [일지] DirectX (21)
    • 게임 엔진 - 언리얼 (123)
      • [코드조선] 언리얼 (53)
      • [코드조선] 언리얼 데디서버 (8)
      • [일지] 언리얼 (59)
      • [일지] 언리얼 (2) (3)
    • 게임 엔진 - 유니티 (28) N
      • [최적화] 유니티 (4)
      • [루키스] 유니티 (24) N
    • 게임 서버 (17)
    • 게임 수학 & 물리 (19)
      • 게임 수학 (12)
      • 게임 물리 (7)
    • GIT & GITHUB (4)
    • 영어 (18)
      • [The Outfit] 대본 공부 (11)
      • the others (7)
    • 그 외 (14)
      • In (5)
      • Out (5)
      • Review (4)

인기 글

최근 글

hELLO · Designed By 정상우.
게임 엔진 - 언리얼/[코드조선] 언리얼

언리얼 문자열 - TCHAR, FString

2024. 5. 10. 10:50

기존 문자열 인코딩 방식

기존 문자열 인코딩 방식은 아래와 같다

Single-Byte: ANSI, ASCII, …
Multi-Byte: EUC-KR, CP949, …
Unicode: UTF-8, UTF-16, …

언리얼의 문자열 인코딩 방식
언리얼은 내부적으로 UTF-16 방식을 채택했다
파일을 읽을 때도 UTF-16 방식을 기본으로 읽는다
단, 소스코드에 한글이 꼭 필요한 경우에는

파일의 인코딩을 UTF-8로 변환해야 한다

TEXT() 매크로
TEXT() 매크로를 통해 문자열을 작성하면

자동으로 언리얼에서 UTF-16을 위한 문자열로 변환해 준다

 

TCHAR vs. FString

UE_LOG(LogTemp, Log, TEXT("헬로, 언리얼!"));
// File > Save as ... > Save 버튼 우측 역삼각형 클릭 
// > Save with Encoding > Encoding에 UTF-8로 지정
// 한글의 경우는 반드시 UTF-8로 변환해야
// Output log에 한글이 제대로 출력된다

TCHAR ArrayOfTChar[] = TEXT("Hello, Unreal!");
// UTF-16 인코딩의 문자열을 저장하기 위한 언리얼 표준 문자 자료형이 TCHAR
// TCHAR 문자열을 생성하기 위해 TEXT() 매크로를 활용했다

FString String0 = ArrayOfTChar;
// 문자열을 좀 더 자유롭게 조작하고 싶다면
// TCHAR 배열 대신 FString 자료형을 사용하면 된다
// TCHAR 배열을 Wrapping한 헬퍼 클래스가 FString이다
FString String1 = FString(TEXT("Hello, Unreal!"));
// 바로 선언을 하고 싶다면 위와같이 가능하다

UE_LOG(LogTemp, Log, TEXT("String1: %s"), *String1);
// FString에 Asterisk(*)를 붙혀줘야 TCHAR 배열이 반환된다

const TCHAR* PtrToTChar = *String1;// const TCHAR* 형으로 
TCHAR* RawPtrToTChar = String1.GetCharArray().GetData();// TCHAR* 형으로

 

FString 기능

// FString에 해당하는 문자가 있는 지 확인하는 경우
// ESearchCase::IgnoreCase는 대소문자 구분하지 않음을 의미
if (String1.Contains(TEXT("unreal"), ESearchCase::IgnoreCase) == true)
{
	int32 Index = String1.Find(TEXT("unreal"), ESearchCase::IgnoreCase);
	FString FoundedString = String1.Mid(Index);
	// "unreal" 문자열이 시작되는 곳에서부터 끝까지 자른다
	UE_LOG(LogTemp, Log, TEXT("Founded string: %s"), *FoundedString);
}

 

숫자와 문자의 변환

int32 IntValue = 7;
float FloatValue = 3.141592f;

// FString::Printf로 숫자 출력
FString StringWithNumbers = FString::Printf(TEXT("int32: %d and float: %f"), IntValue, FloatValue);
UE_LOG(LogTemp, Log, TEXT("StringWithNumber: %s"), *StringWithNumbers);

// FString::FromInt로 숫자를 문자열로 변환
FString IntString = FString::FromInt(IntValue);
UE_LOG(LogTemp, Log, TEXT("IntString: %s"), *IntString);

// FString::SanitizeFloat로 복잡한 float 자료형의 표준을 정돈해서 문자열로 변환
FString FloatString = FString::SanitizeFloat(FloatValue);
UE_LOG(LogTemp, Log, TEXT("FloatString: %s"), *FloatString);

// C 문자열 라이브러리 함수(atoi(), strcpy(), ...)를 제공하는 클래스 FCString
// 권장되지 않는다
int32 IntValueFromString = FCString::Atoi(*IntString);
UE_LOG(LogTemp, Log, TEXT("IntValueFromString: %d"), IntValueFromString);

float FloatValueFromString = FCString::Atof(*FloatString);
UE_LOG(LogTemp, Log, TEXT("FloatValueFromString: %f"), FloatValueFromString);
저작자표시 비영리 변경금지 (새창열림)

'게임 엔진 - 언리얼 > [코드조선] 언리얼' 카테고리의 다른 글

언리얼 자료구조 - TArray, TSet, TMap  (0) 2024.05.10
언리얼 문자열 - FName, FText  (0) 2024.05.10
언리얼 오브젝트 기능 - 델리게이트  (1) 2024.05.10
언리얼 오브젝트 기능 - Serialization  (0) 2024.05.10
언리얼 오브젝트 기능 - Smart Pointer  (0) 2024.05.09
'게임 엔진 - 언리얼/[코드조선] 언리얼' 카테고리의 다른 글
  • 언리얼 자료구조 - TArray, TSet, TMap
  • 언리얼 문자열 - FName, FText
  • 언리얼 오브젝트 기능 - 델리게이트
  • 언리얼 오브젝트 기능 - Serialization
묻공러
묻공러
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.