Visual studio 2015 에서 프로그램을 작성하면 인코딩이 자동으로 CP949(EUC-KR) 로 설정됩니다. 이는 다른 플랫폼 간 호환성 문제를 일으킬 수 있고 당장 Git 클라이언트인 source tree 또는 Github desktop 에서 한글로 작성한 주석은 모두 깨지는 것을 보실 수 있으실 겁니다.

웹 서버 또는 데이터베이스 같은 경우 대부분 유니코드를 사용하며 이를 저장하기 위해 UTF-8 인코딩을 사용하며 현대 개발에 있어 표준이라고도 할 수 있습니다.

💡 Tips

UTF-8유니코드1) 를 위한 가변 길이 문자 인코딩 방식 중 하나로, 켄 톰프슨과 롭 파이크가 만들었다. UTF-8Universal Coded Character Set + Transformation Format – 8-bit 의 약자이다. wikipedia

유니코드는 문자표이며 유니코드를 컴퓨터에 저장하는 방법 중 하나UTF-8 입니다.

따라서 Visual studio에서도 UTF-8Default로 설정하여 사용하고 싶은데 그 기능이 없기 때문에 확장 플러그인을 추가해 주셔야 합니다.

Plugin

EditorConfig

💡 Tips

2017 버전 이후로는 해당 플러그인이 기본으로 추가돼서 별도로 설치할 필요가 없습니다.

editor config

.gitignore와 같이 .editorconfig 파일에 특정 확장자에 어떤 코딩 스타일 옵션을 줄 것인지 설정한 후 Visual studio 실행 시 해당 파일을 로드하여 설정하는 플러그인입니다. 여기서 설정할 수 있는 옵션은 다음과 같이 있습니다.

OptionDescription
rootIDE가 .editorconfig 파일을 찾는데 root = true인 파일을 찾으면 검색을 중지합니다.
indent_style들여쓰기를 tap 또는 space로 설정합니다.
indent_size들여쓰기 사이즈를 설정합니다.
end_of_linelf 또는 crlf 개행문자2)를 설정합니다.
charset캐릭터셋을 설정합니다.
1
2
3
4
5
6
7
8
# .editorconfig
root = true

[*]
charset = utf-8-bom
end_of_line = crlf
indent_style = space
indent_size = 4

해당 파일을 솔루션 최상단에 넣어 적용시킵니다.

⚠️ Warning

해당 플러그인은 C/C++ 또는 MFC 프로젝트에 적용되지 않습니다!

따라서 C/C++ 을 사용하시는 분이라면 아래 플러그인을 사용해주세요.

ForceUTF8

플러그인 이름과 같이 무조건 UTF-8로 저장하는 플러그인입니다.

Note 📝

UTF-8 중에서도 서명이 있는 것과 없는 것이 있는데 반드시 서명이 있는 UTF-8을 사용하셔야 합니다. 서명이 없는 것을 사용하여 소스코드를 저장하면 문제없이 저장은 되지만 다시 로드할 때 문자가 모두 깨집니다. 또한 디버깅 시 Break point를 잡지 못하는 경우도 있을 수 있다고 하니 반드시 서명이 있는 UTF-8을 사용해야 합니다.

각주

  1. 유니코드(영어: Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이다. wikipedia
  2. 개행 문자, 줄바꿈 문자(line break), EOL(end-of-line)과 같은 뜻이다. 기종이나 운영 체제에 따라 새줄 문자를 나타내는 코드가 다를 수도 있다. 그래서 텍스트를 다른 시스템으로 전송할 때 새줄 문자의 치환 작업도 필요하다. wikipedia