운영체제별 지원하는 문자열이 다르고, 나라별 언어를 표기하는데 바이트가 다 다르다.
메모리를 적게 사용한다.
영문권 캐릭터 -> 1byte
동아시아 캐릭터 -> 2byte
혼합된 방식
무조건 2Byte
메모리를 더 사용한다
데이터 저장할때 깔끔하게 정렬된 데이터를 얻을 수 있다.
언리얼 엔진의 모든 스트링은 FStrings 혹은 TCHAR 정렬상태로 UTF-16 포맷 메모리에 저장됩니다.
스트링은 현 플랫폼에 적합한 엔디안에 저장됩니다.
디스크 또는 네트워킹 도중 패키지를 serialize 할때 0xff 보다 작은 모든 TCHAR 캐릭터 스트링은
8 비트 바이트 시리즈로 저장되고, 그외에는 2 바이트의 UTF-16 스트링으로 저장됩니다.
serialize 코드는 필요에 따라 어떤 엔디안 변환도 다룰 수 있습니다. br
언리얼이 외부 텍스트 파일을 로드할때 ( 예시로 실행시간에 .INT 파일을 읽을때) 는
거의 항상 UnMisc.cpp 에서 찾을 수 있는 appLoadFileToString() 함수로 해결합니다.
작업은 주로 app BufferToString() 함수에서 일어납니다.
이 함수는 UTF-16 파일에서
유니코드 바이트-오더-마크 을 인식하고,
추천 UTF-16
가급적 UTF-8 을 사용하도록 한다.
하지만 한글은 문제가 있을수 있으니 쓰지 않는것이 좋으나 감안하고 사용해야 한다.
언리얼 엔진은 문자열을 생성할 때 모든 플랫폼에서 2 byte 문자열 체계를 동일하게 유지시키는 TEXT("문자열") 매크로를 제공한다.
FString FText::ToString();
FString FName::ToString();
FText FText::FromString(FString str);
FText FText::FromName(FName str);
FName FName(*FString str);