BOM이없는 UTF-8


180

UTF-8 (BOM없이)로 저장 해야하는 자바 스크립트 파일이 있으며 메모장 ++ 에서 올바른 형식으로 변환 할 때마다 Visual Studio에서 파일을 열면 BOM을 사용하여 UTF-8로 되돌아갑니다. VS2010이 그렇게하지 못하게하려면 어떻게해야합니까?

또 다른 질문은 Visual Studio에서 서명이없는 UTF-8이 BOM이없는 UTF-8과 동일합니까?


13
(BOM없이 UTF-8)으로 저장된 파일은 (BOM에서는 UTF-8)로 되돌아갑니다. 이것은 문제입니다
kabaros


kabaros 문제에 대한 해결책은 간단합니다-BOM없이 uft-8을 사용하여 Visual Studio로 파일을 저장하십시오. 그렇습니다. Keavon은 "UTF-8 Signature없는 목록이 목록의 가장 아래쪽에 있습니다"라고 알았습니다. 서명이있는 utf-8이 시작에 있고 서명이없는 utf-8이 거의 끝에 있다는 것은 매우 이상하지만 적어도이 좌절 문제를 해결합니다.
cyriel

답변:


227

BOM 또는 바이트 주문 마크는 때때로 성가시다. Visual Studio는 파일을 저장하지 않으면 파일을 변경하지 않습니다 (Hans가 말한 것처럼).

다음은 문제에 대한 해결책 입니다. 다른 인코딩으로 파일을 저장하려면 다른 이름으로 저장을 선택하고 파일 대화 상자에서 저장 버튼을 확장하고 "인코딩으로 저장"을 선택하십시오. 또는이 설정을 영구적으로 제거하려면 파일 메뉴를 열고 "고급 저장 옵션"을 선택하면 "서명없는 UTF-8"(그리고 마지막 질문 :)도 선택해야합니다. 예 "서명없는 UTF-8"은 BOM없는 것과 동일합니다.


11
모든 파일에 대해 기본적으로 이것을 활성화하는 옵션이 있는지 궁금합니다.
mihai

3
"인코딩으로 저장"을 선택했을 때 파일을 올바르게 저장했지만 편집기에서 어떤 종류의 파일을 열어도 파일 메뉴에 "고급 저장 옵션"이 표시되지 않습니다. 흠 ..
Chris Jaynes

20
@ChrisJaynes는 열린 지점에서 메뉴 표시 줄을 마우스 오른쪽 단추로 클릭 한 다음 사용자 정의 ... 명령 ... (*) 메뉴 표시 줄을 클릭하십시오. 파일 ... [명령 추가] ... "고급 저장 옵션"에 추가하십시오. "선택 저장"바로 위에
Tracker1

4
글쎄, 난 "서명없는 UTF-8"항목이 없습니다 ... 그렇다면 문제는 무엇입니까?
Marco Klein

14
참고 : 서명없는 UTF-8은 목록 맨 아래에 있습니다.
Keavon

29

이제 사진과 함께.

  1. File->로 이동하십시오 Save As.

    파일 / 다른 이름으로 저장

  2. 그런 다음 저장 버튼에서 삼각형을 클릭하고을 클릭하십시오 Save with Encoding....

    인코딩으로 저장

  3. 확인을 클릭하여 파일을 덮어 쓴 다음 인코딩 목록에서 찾기 UTF-8 Without signature->를 클릭하십시오 OK.

    서명없는 UTF-8

이것이 시간을 절약하기를 바랍니다.


26

Visual Studio 2010+에서 BOM을 UTF-8 파일에 추가하지 못하게 하는 수정 파일 인코딩 확장을 만들었습니다 .


1
그 플러그인에 감사드립니다! 파일 접미사와 일치하는 설정에서 정규식을 사용하는 것보다 파일 형식을 지정하는 다른 방법이 있어야합니다. 또한 플러그인은 파일을 저장할 때만 작동하며, 자바 스크립트를 만들 때 처음에는 BOM (3 바이트 추가)이 있습니다.
Anders Lindén

6

불행히도 이것은 csproj 파일에서 작동하지 않습니다. "고급 저장 옵션"이 없으며 cs 파일에 대해 "서명없는 UTF-8"로 설정하더라도 csproj 파일은 여전히 ​​BOM과 함께 저장됩니다. VSS를 사용하는 경우 여전히 프로젝트 파일에 대해 불평합니다.


VSS에서 SVN으로 이동해야 할 수도 있습니다. 전환 할 수있는 도구를 본 적이 있습니다. SVN은 무료이며 저렴한 가격으로 Visual SVN을 Visual Studio에 플러그인하고 UI에서 직접 SVN을 사용할 수 있습니다.
Dave81

7
"아마도 VSS에서 SVN으로 옮겨야합니다." 어떤 종류의 제안입니까? 엔터프라이즈 소프트웨어를 사용하는 대부분의 사람들은 소스 제어 시스템을 선택하지 않아도됩니다. SVN에는 SVN이 공급되어 git을 생성하게 된 문제가 있습니다.
시바

4

UTF-8- "다른 이름으로 저장"(서명없이) 기본값-서명없이 UTF에 대한 기본값 포함 요청

VS 2017은 기본적으로 EditorConfig를 지원 하므로 권장되는 솔루션은 .editorconfig파일을 코드베이스 에 추가 하고 설정하는 것 charset => utf-8입니다. 그런 다음 파일을 저장하면 BOM없이 UTF-8로 저장됩니다.


VS 2017이 여전히 charset.editorconfig github.com/editorconfig/editorconfig-visualstudio/issues/
BlazingFrog

2

vs2010 c ++의 경우 소스 파일에 멀티 바이트 문자 (예 : 중국어)가 포함 된 경우 BOM이없는 UTF8에 문제가 있습니다.

이러한 문자는 BOM이 없으면 올바르게 인식되지 않으므로 작성에 실패합니다.


BOM이없는 Windows에서는 파일에 ANSI 인코딩이있는 것으로 가정되므로 파일이 손상 될 것입니다.
phuclv

2

최근에 임의의 UTF-8 인코딩 파일에서 BOM을 추가하거나 제거하는이 작은 명령 줄 도구를 찾았습니다. UTF BOM 유틸리티 ( github의 새 링크 )

약간의 단점은 일반 C ++ 소스 코드 만 다운로드 할 수 있다는 것입니다. makefile ( 예 : CMake 사용 )을 작성하고 직접 컴파일해야합니다.이 페이지에는 바이너리가 제공되지 않습니다. 그러나 소프트웨어 개발자에게는 문제가되지 않습니다.


1

Dave81의 솔루션을 사용하더라도 Visual Studio 2015 Community는 HTML 파일을 저장할 때마다 여전히 내 파일을 UTF8-BOM으로 되돌 렸습니다.

해당 html 파일을 만들 때 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "추가"를 선택한 다음 HTML 파일을 추가했습니다.

기본적으로 Visual Studio는 <meta charset="utf-8" />HTML 파일에 태그를 포함 합니다.

태그를 제거한 다음 Dave81의 솔루션을 적용하면 문제가 해결됩니다.

Visual Studio가 html 파일을 구문 분석하는 것으로 보이며 태그를 볼 때 원래 파일 형식 (BOM이없는 UTF-8)을 고려하지 않고 파일을 UTF8-BOM으로 변환합니다.

Dave81의 솔루션에서 직접 의견을 말했지만 그렇게할만한 충분한 지적이 없었습니다 ...


0

들어 비주얼 스튜디오 코드 다음을 수행 :

  1. 오른쪽 아래에서 현재 인코딩을 선택하십시오. 여기에 이미지 설명을 입력하십시오
  2. 옵션에서 enconding으로 저장을 선택 하십시오. 여기에 이미지 설명을 입력하십시오
  3. 옵션에서 UTF-8을 선택하십시오. 여기에 이미지 설명을 입력하십시오

VS와 VS 코드는 매우 다릅니다. 이 질문은 VS 관한 것입니다
phuclv

질문 VS 위해이었다 당신은 나의 확률값은 따라서 그것을 upvoting 해결 VScode에 대한 대답하지만
아슈

-2
UTF8Encoding utf8EmitBOM = new UTF8Encoding(false);
StreamWriter  sw = new StreamWriter(Path.Combine(sourcefilePath, fileName), false, utf8EmitBOM);

이 코드는 BOM없이 UTF-8로 파일을 만듭니다.


문제는 C # 코드로 일부 파일을 쓰는 동안 인코딩을 설정하는 것이 아니라 IDE에서 소스 코드 파일을 저장하는 동안 인코딩에 관한 것입니다.
phuclv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.