c++ - 설정 - 비주얼 스튜디오 2017 인코딩




Visual Studio에서 Project 또는 Solution 레벨의 서명없이 모든 파일을 UTF-8로 저장하려면 어떻게합니까? (4)

Linux에서 gcc로 컴파일 할 수있는 방식으로 VS c ++ 프로젝트를 구성하려고합니다. 그것은 서명없이 UTF-8로 인코딩 된 파일을 필요로하는 것 같습니다 (기본값이 아닙니다). 누군가가 솔루션을 열고 변경 사항을 저장 한 후에도 파일이 여전히 UTF-8이되도록 프로젝트 또는 솔루션 수준에서 무언가를 설정할 수 있습니까?

오픈 프로젝트이므로 Visual Studio 설정을 변경하도록 모든 사용자에게 요청할 수는 없습니다.


Visual Studio는 다른 이름으로 저장 ...으로 가서 "인코딩으로 저장 ..."을 선택하고 "서명없이 UTF-8"을 선택하여 BOM을 제거합니다. BOM없이 저장되면 VS에서 다시 추가하지 않습니다. 유감스럽게도 VS의 모든 파일에 대해이 기본값을 설정할 방법이 없으며 파일을 처음 저장할 때마다 수동으로 수행해야합니다.

Cygwin을 설치했다면이 작은 스크립트로 기존 파일을 일괄 수정할 수 있습니다 :

find . -name "*.cpp" -exec vim -c "set nobomb" -c wq! {} \;

또는 Cygwin을 가지고 있지 않지만 정력을 가지고 있다면이 배치 스크립트를 사용할 수 있습니다.

for %%f in (*.cpp) do call vim -c "set nobomb" -c wq! %%f

참고로, 배치 스크립트에서이 작업을 수행하면, vim이 종료 할 때마다 cygwin 버전의 경우가 아닌 [반환]해야합니다.


Visual Studio에서는 파일 내용을 기반으로 문자 인코딩을 추측하고있는 것 같습니다. 각 파일에 표준 주석 헤더를 넣고 해당 주석에 모호하지 않은 UTF-8 문자가 포함되어 있으면 VS가 올바른 작업을 수행해야합니다. 부수적 인 이점은 일부 Linux 유틸리티는 파일을 명시 적으로 UTF-8로 인식한다는 것입니다.


내가 그랬던 것처럼

  1. 메모장을 사용하여 조용한 프로세스를 호출하는 작은 응용 프로그램을 작성했습니다. 셸에서 간단히 처리 (System.Diagnostics 사용)
  2. utf-8로 열리고 저장되는 파일 및 foreach 파일의 명부를 창조했다

1. 20 분에 1을 쓰고 몇 분은 실행했다.
300 개의 파일을 모두 수동으로 열어서 저장하는 것을 생각할 수 없습니다.


이것이 당신이 propertyPage에 넣을 수있는 설정 인 것 같지 않습니다. 내가 생각할 수있는 최선의 방법은 미리 빌드 단계로 실행하고 파일을 다시 쓰는 간단한 스크립트 ( 이 링크 와 같이)를 만드는 것입니다. 스크립트가 프로젝트와 함께 유지되는 한 아마 그 일을 할 것이지만, 성가신 일이 될 것입니다.







encoding