티스토리 뷰

이글을 작성하게된 계기는


VS2017에서 clang  컴파일러 사용시


error : illegal character encoding in string literal


오류를 경험하시는분들에게 해결책이 되지않을까 싶어서 올려봅니다


저같이 15시간정도 고통받지마세요..


아래는 오류가뜨는 사진 입니다



오류뜹니다!!



내용을 보니까 error : illegal character encoding in string literal


처음보는 오륜데 뭐지.......................... 전이때 억장이 무너졌습니다..


-----원인설명------


VS2017은 소스코드를 생성할떄 기본 인코딩 값이 UTF-16 잡힙니다.


윈도우 메모장도 파일 생성할때 기본 인코딩값이 UTF-16 입니다


VS2017에서 제공하는 MSVC 컴파일러는 UTF-16로 인코딩된 소스파일을 잘인식합니다.


허나 clang 컴파일러는 UTF-8 소스파일까지 현재 인식이 됩니다.


그래서 VS2017에서 기본생성된 UTF-16 파일로


clang 컴파일러가 컴파일 못하겠다고 버럭 화를내는겁니다!!


저는 이거땜에 매우 머리가 아팠습니다!!!!


------해결책------


이미 UTF-16로 생성된 소스파일을 UTF-8로 변환해주면 됩니다.


이건그냥 소스파일을 메모장으로 열거나 VS에서 다른이름으로 저장을 누르신후


저장 버튼 옆에 작은 화살표를 누르시면 encoding 설정하는 메뉴가 뜹니다


아무숫지도없이 유니코드 라고 써잇는건 윈도우 기본값인 UTF-16 입니다.


거기서 UTF-8 65001 눌러주시면 저장하면 됩니다.


저같이 소스코드가 1개만 변환해주면 되면 간단한데


만약 많은 양의 소스파일이 UTF-16 이라서 UTF-8 바꿔주셔야 한다면...


고인의 명복을 빕니다.....


--------VS2017 생성파일 기본인코딩값 UTF-8 로 바꿔주기----


VS2017은 기본 인코딩값이 UTF-16이니까 파일생성할때마다 UTF-8로 바꿔주면 매우 번거롭습니다.


그래서 아예 VS2017한태 앞으로 파일생성 무조건 UTF-8로 해라고 설정 하는 방법에 대해 설명하겠습니다.


우선저는 UTF-16으로 생성된 파일을 삭제하겠습니다.


프로젝트를 클릭하신후 Add 버튼을 눌러줍니다.


Utility -> TextFile 클릭하신후


파일명을 .editorconfig 로 하신후 Add 눌러줍니다


.editorconfig 옵션은


.editorconfig 파일이 포함된 하위폴더에만 적용이 됩니다


저같은경우에는 모든 파일에 적용되도록 프로젝트의 최상위 폴더에 위치 시켜뒀습니다.



위와 같은 창이뜨면


.editorconfig 파일 안에


root = true


[*]

charset = utf-8


을 입력합니다. 그러고나서



저장하기를 꼭눌러줍시다!



.editorconfig의 자세한 옵션셋팅은


https://editorconfig.org/


저기가시면 자세히 설명되있습니다.



이제 소스파일 폴더를 클릭하신다음에


main.c 파일을 하나 생성하신후


실행이 잘 됩니다!.


저같이 고생하지 마세요... 나만 몰랐던거 아니죠? ㅠㅠ





댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함