-
[Unreal Engine] C++ Code encodingUnreal Engine 5._ 2023. 5. 16. 14:10
언리얼 개발 중, 문자가 깨지거나, 컴파일이 안 되는 현상이 있었습니다.
이에 간단한 해결책을 알아보도록 하겠습니다.
컴파일 에러 코드나, 출력 문자열은 경우에 따라 다를 수 있기 때문에 첨부하지 않도록 하겠습니다.
중요한 것은 한글 인코딩과 관련된 문제라는 것 입니다.
1. Advanced save option
더보기Visual Studio의 상단 메뉴에서 Advanced Save Option을 선택합니다.
이후 나오는 창에서 Encoding을 선택합니다.
이 때 주로 선택되는 인코딩은 UTF-8입니다.
VS에서는 다음과 같이 적혀있습니다.
Unicode (UTF-8 with signature) - Codepage 65001
만약 VS의 File메뉴에 Advanced Save Option이 존재하지 않을 경우, 다음 과정을 통해 추가할 수 있습니다.
Tools메뉴의 Customize를 선택합니다.
Command탭의 Menu bar 항목에서 File을 선택합니다.
이후 Add Command버튼을 클릭합니다.
File 카테고리에서 Advanced Save Option을 선택한 후 OK버튼을 클릭합니다.
이러면 Preview에 Advanced Save Option이 생성됩니다.
생성된 항목을 선택한 후, Move Up 혹은 Down버튼으로 항목의 위치를 지정할 수 있습니다.
2. EditorConfig
더보기EditorCofnig는 다양한 IDE에서 일관된 코딩 스타일을 유지할 수 있도록 지원하는 툴 입니다.
Visual Studio는 추가적인 인스톨 없이 EditorConfig를 사용할 수 있습니다.
예시로 CPPTutorial이라는 프로젝트를 하나 생성했습니다.
이 프로젝트의 최상단에 (.sln파일과 같은 위치에) .editorconfig파일을 생성합니다.
파일 생성은 텍스트 파일을 생성 후, 확장자를 포함한 이름을 변경하는 것으로 충분합니다.
이후 위와 같이 두 줄의 인수를 추가하면 됩니다.
구체적으로 각 줄은 다음과 같은 의미를 가지고 있습니다.
[*] : 해당 프로젝트의 모든 파일에 대해 적용되는 속성입니다. *을 파일 확장자, 파일명 등으로 제한할 수 있습니다.
charset = utf-8 : 문자 인코딩을 utf-8로 지정한다는 의미입니다.
이 외에도 설정 가능한 여러 값이 존재하며, Visual Studio외에 다른 IDE에서도 사용이 가능합니다.
자세한 내용은 EditorConfig에 서술되어 있습니다.
EditorConfig
3. Project Properties
더보기이 방법은 언리얼 엔진을 경유한 Visual Studio 개발에서는 사용할 수 없는 것으로 보입니다.
아래 예시는 모두 일반적인 C++프로젝트의 예시입니다.
혹 언리얼 프로젝트에 적용하는 방법을 알고 계신다면 조언 부탁드리겠습니다.
Visual Studio의 프로젝트 설정에서 인코딩을 변경하는 방법을 소개합니다.
메뉴 바의 Project탭에서 {Proejct Name} Properties를 클릭합니다.
위와 같이 Configuration Properties -> C/C++ -> Command Line 항목으로 이동합니다.
이 후 Additional Options에 사진처럼 다음과 같은 명령어를 추가합니다.
/source-charset:utf-8
이 명령어를 추가함으로써, 해당 프로젝트의 소스 코드의 인코딩을 utf-8로 변경할 수 있습니다.
위와 같이 Property Pages가 정상적으로 열리지 않을 경우, Solution Explorer를 확인해주세요.
위 사진과 같이 프로젝트 항목이 선택되어야 합니다.
문자열 인코딩은 정상적인 출력을 위해서 반드시 검토되어야 하는 항목입니다.
이번 글에서 알아본 방법 이외에도 다른 방법이 있을 수 있으니, 프로젝트에 맞는 방법을 선택하는 것이 좋겠습니다.
감사합니다.
'Unreal Engine 5._' 카테고리의 다른 글
[Unreal Engine] Finding files (0) 2023.05.22 [Unreal Engine] LuaMachine : Install & Hello world (0) 2023.05.19 [Unreal Engine] Line trace (0) 2023.04.28 [Unreal Engine] Control game speed (Time Dilation) (0) 2023.04.06 [Unreal Engine] SetTimer() : Passing parameters (0) 2023.02.24