인프런 커뮤니티 질문&답변

Minjeong Kim님의 프로필 이미지

작성한 질문수

이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해

3강 언리얼C++ 기본타입과 문자열

인코딩 질문입니다

작성

·

543

·

수정됨

0

강의 중 한글 '와'를 포함한 소스코드를 utf-8 인코딩으로 변경해서 저장하고 컴파일하면 '와'로 잘 출력되었는데요...

근데 Unreal 에서는 스트링 저장시 UTF-16 format을 쓴다고 되어있는데 그럼에도 불구하고 UTF-8로 인코딩된 영어랑 " <-요런 (기호)문자들이 잘 호환된 이유는 뭘까요?

Character Encoding in Unreal Engine 문서에
When serializing to packages to/from disk or during networking, strings with all TCHAR characters less than 0xff are stored as a series of 8-bit bytes, and otherwise as 2-byte UTF-16 strings. The serialization code can deal with any endian conversion as necessary.

이 내용 때문인가요? 시리얼라이징에만 해당하는 것 같아 보이는데요.. 인코딩 정말 헷갈리는군요..

답변 2

0

이득우님의 프로필 이미지
이득우
지식공유자

문자열을 메모리에서 사용하는 경우, 빠른 접근을 위해 모든 캐릭터를 동일한 2바이트 배열로 사용합니다. 하지만 디스크에 저장할 때는 일반 알파벳의 경우 공간의 낭비가 발생하기에 ( 특히 네트웍까지 감안하면, 불필요한 패킷 낭비가 되겠죠 ) UTF-8과 같은 구조를 사용하는 것으로 이해해주시면 될 것 같아요.

0

Minjeong Kim님의 프로필 이미지
Minjeong Kim
질문자

아니면,,, uft-8로 저장하더라도 어찌되었든 Latin alphabet, 기호들, 한글은 그에 해당하는 code point이어서 어떤식으로 메모리에 저장 하냐만 다를 뿐 uft-16로 다시 encoding 할 수 있다는 건가요?...?..??? 아 뭔가 중간에 하나를 이해 못해서 레빗홀에 빠진 느낌이에요..