언리얼4 - hexString to 한글
FString CommonFunc::ConvertHexToFString(FString& inStr)
{
FString resultString;
int count = inStr.Len() / 4;
for (int i = 0; i < count; i++)
{
FString tempFString = inStr.Mid(i * 4, 4);
std::string tempStr(TCHAR_TO_UTF8(*tempFString));
int strHex = strtoul(tempStr.c_str(), 0, 16);
resultString.AppendChar(strHex);
}
return resultString;
}
한글이 유니코드(2byte)로 되어있을 때
16진수(hex)나 2진(binary)가 아니라
스트링(FString)으로만 구성되어있을때
변환하는 방법을 찾았다.
(예를 들면 "레벨"이라는 한글이 "B808BCA8"로 들어올 때, "레"가 "B808"이다.)
한글 한글자 16진수 코드 4개로 이루어져 2byte이고
이를 숫자로 바꾸었다. (std::string으로 바꾸고 strroul함수 사용)
그리고 wchar_t라는 와이드캐릭터셋 변수에 넣으면
숫자를 알아서 한글로 바꾸어준다.
언리얼4의 FString은 내부적으로 wchar_t의 배열이므로
AppendChar()함수에 숫자로 변환한 값을 넣어주면
FString에 한글이 정산적으로 들어가는 것을 확인할 수 있다.
별도의 인코딩 함수가 없어서 고생했다.
완성된 문자열로 들어온 값이라 hex가 아니라 스트링으로만 인식 된다.
wchar_t 의 속성을 나중에야 찾아서 그제서야 해결했다.
'공부 > Unreal4' 카테고리의 다른 글
언리얼 코딩 표준 (0) | 2017.02.13 |
---|---|
유용한 사이트 (0) | 2017.02.06 |
언리얼4 체인 효과 내기 (0) | 2017.01.11 |
언리얼 인벤토리 시스템 자료 (0) | 2017.01.11 |
블루프린트 받아올 때 실수한 부분 (0) | 2017.01.10 |