빠른 해결 방법은 아래로 내려가세요! 해결 방법
으윽 Visual Studio에서 QT로 프로젝트를 개발하는 도중에.. 한글이 깨지는 현상이 발견되었다..
그리고 한글을 쓴 상태에서 빌드를 해보니
오류 C2001 : 상수에 줄 바꿈 문자가 있습니다.
오류 C2146 : 구문 오류: ')'이(가) 'M_FaceCount' 식별자 앞에 없습니다.
오류 C2146 : 구문 오류: ';'이(가) 'M_FaceCount' 식별자 앞에 없습니다.
뭐 이런식으로 오류가 떴다..
이게 문제인 것 같은데.. 난 분명 줄 바꿈 문자를 넣지도 않았는데 저래 뜬다..
그리고 겨우 빌드 해도..
이런식으로 알 수 없는 문자로 뜨는 것이다..
그래서 예전에 생각해보니 비슷한 문제가 있어 인코더 문제인가 하고 인코더를 바꿔보니 되는 것이다!
해결방법
문제가 일어나는 파일을 선택 후 "파일 > 다른 이름으로 이름.cpp 저장(A)..."
저장하는 파일 목록이 뜨면 아래에서 저장 바로 오른쪽에 아래로 내리는 삼각형 표시 클릭
그러면 이렇게 인코딩하여 저장(V)... 이 뜨는데 이걸 눌러야 합니다!
글고 파일을 바꿀껀지 묻는데 인코더를 바꿔야 함으로 당연히 바꾸기 클릭!
그럼 이런식으로 뜨는데 여기에서 인코딩이 보통 한국어 - 코드 페이지 949로 뜨는데 이걸 유니코드(서명 없는 UTF-8) - 코드 페이지 65001로 바꿉니다! (보통 Visual Studio에서 저장하면 EUC-KR로 저장되는 것 같습니다.)
그리고 확인을 눌러 저장!
그러고 난 후에 다시 빌드해보면 어떤 문제도 발생하지 않고 정상적으로 글자가 표시됩니다.
그리구! 일본어도 가능!
뭐 어쨌든 이런 것이고.. 분명히 항상 이 설정을 하는 것은 불편하죠..
그러니 바꿔보죠!
(Visual Studio Code는 인코딩 자동 설정으로 바로 되던데..)
Visual Studio 기본 인코더 설정
이 방법은 프로젝트마다 설정해야되니.. 불편하긴 하지만.. 어쨌든 되니 뭐 암튼
일단 프로젝트 파일로 들어갑니다.
프로젝트 파일은 솔루션 폴더 안에 있습니다.
즉! 보통 프로젝트를 만들면 솔루션 이름을 지정하고 프로젝트 이름을 지정하게 되는데
source > repos > 솔루션 이름 > 프로젝트 이름 이런식으로 저장되는데 여기에서 우리가 해야할 작업은 프로젝트 이름 쪽 폴더 입니다.
프로젝트 폴더엔 vcxproj 파일이나 cpp나 h 파일을 작성했던 모든 코드들을 볼 수 있는 폴더인거죠
뭐 암튼 여기에서
이런 파일을 ".editorconfig"생성합니다. 전 그냥 바로 메모장 파일 생성하고 이름하고 확장자 전체 다 바꿨습니다.
그리고 그 안에 이렇게 작성합니다.
root = true
[*]
charset = utf-8
그리고 저장하면 끄읕!
그리고 이제 Visual Studio에서 파일을 생성해보면?!!
이런식으로 바뀌었습니다!
어렵네요..
요약
파일 > 다른 이름으로 이름.cpp 저장(A)... > 저장 오른쪽 삼각형 클릭 > 인코딩하여 저장(V)... > 인코딩(E): 아래 메뉴에서 유니코드(서명 없는 UTF-8) - 코드 페이지 65001 이걸로 변경
항상 UTF-8로 자동저장 방법
프로젝트 폴더로 진입 > .editorconfig 파일 생성 > 아래 코드 입력 후 저장
root = true
[*]
charset = utf-8
.editorconfig 설정 관련 사이트
EditorConfig
What is EditorConfig? EditorConfig helps maintain consistent coding styles for multiple developers working on the same project across various editors and IDEs. The EditorConfig project consists of a file format for defining coding styles and a collection o
editorconfig.org
근데 왜이리 중간 중간 말투가 바뀌는거지..
'오류 | 문제 > C++' 카테고리의 다른 글
C++ OpenCV 이미지에서 이미지 복사 문제점 (0) | 2023.02.24 |
---|---|
C++ Dlib dlib::deserialize (오류 예외가 발생함) (0) | 2023.02.01 |
C/C++ 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. (0) | 2023.01.10 |
QT Qt6Core.dll Qt6Gui.dll Qt6Widgets.dll 찾을 수 없음 (0) | 2023.01.10 |
C++ CVUI (오류 LNK1120 3개의 확인할 수 없는 외부 참조입니다.) (0) | 2022.11.28 |