답변1
자동 변경 인코딩을 중지하려면 어떻게 해야 합니까?
- 에 따르면당신의 의견,자동 추측 인코딩는 이미끄다.
VS Code가 파일을 다음과 같이 인코딩한다는 사실윈도우-1252
(코드 페이지 1252또는CP1252)
다른 설명이 필요합니다.
CSS 파일을 구체적으로 디코딩하는 VS Code 설정이 있다고 가정
하면윈도우-1252, 귀하의 상황을 매우 정확하게 재현할 수 있었습니다.
1
1. 전체 시나리오 재현
나는단순화된 버전style.css
, 단 한 줄만 포함 :
/* Ü */
VS Code가 인코딩을 사용하여 파일을 열도록 하려면윈도우-1252
(자동 추측 인코딩 사용끄다),
VS Code에 settings.json
다음 코드/라인이 포함되어 있다고 가정합니다.
2
"[css]": {"files.encoding": "windows1252"},
.css
이러한 설정을 사용하면 VS Code가 모든 파일을 다음과 같이 인코딩합니다 .윈도우-1252.
삼
다운로드하면style.css
을 선택한 다음 마우스 오른쪽 버튼을 클릭하고
코드로 열기, 다음을 볼 것으로 예상됩니다.
^ 확대하려면 클릭하세요
보는 이유둘 윈도우-1252문자 – Ãœ
– 대신하나의 UTF-8 Ü
성격이 그렇죠?윈도우-1252
각 바이트를 읽습니다.단일 문자 – ASCII가 아닌 문자
Ã
및 œ
.
UTF-8반면에 사용2바이트와 같은 ASCII가 아닌 단일 문자를 읽으려면 Ü
.
4
1. 가. Ü
올바르게 표시하는 방법
독일어 문자를 Ü
올바르게 표시하려면 다음을 클릭해야 합니다.
인코딩으로 다시 열기 >UTF-8내용으로 추측.
고르는인코딩으로 다시 열기 그렇지 않다파일 자체를 변경하십시오.
파일의 상태가 변경됩니다.표시됨VS Code에서 – 어떻게 되나요?
디코딩된.
1. ㄴ. 당신이해야 할 일~ 아니다하다
대신 다음을 클릭하면 문제가 발생합니다.
인코딩으로 저장>UTF-8내용으로 추측.
이것하다파일 변경 – 모두비-ASCII 문자는 변환됨해당 UTF-8 문자로 변환됩니다. 파일을 저장하면 이러한 변경 사항이 저장됩니다.
이제 닫았다가 다시 열면 style.css
다시인코딩된~처럼윈도우-1252.
(왜? – 이것이 바로 VS Code "[css]": {"files.encoding": "windows1252"},
에 있는 줄이 settings.json
말하는 내용이기 때문입니다!)
여기서 보게 될 내용은 다음과 같습니다.
Ü
질문의 스크린샷에 표시된 문자와 동일한 문자가 어떻게 표시되는지 확인하세요 .
지금 보시는 이유는네대신 문자둘이전과 동일합니다.
–하나의 UTF-8문자 Ã
(2바이트)가 다음과 같이 표시됩니다.
둘로 디코딩할 때 문자 Ã
(여전히 2바이트)
윈도우-1252.
그리고 싱글UTF-8문자는 œ
두 가지로 표시됩니다.
윈도우-1252문자 Å“
.
이로써 귀하의 시나리오 재현이 완료되었습니다.
2. 손상된 파일을 복구하는 방법
Ü
손상된 을 표시하지 않고 표시하려는 경우 다음을 Ãœ
수행해야 합니다. \
- 파일을 다시 변환하고,
- 인코딩하다UTF-8,
- 파일을 닫았다가 다시 엽니다.
1. 파일을 다시 변환
style.css
손상된 파일을 원래 상태로 되 돌리는 방법은 다음과 같습니다 .
이전 스크린샷부터 시작하여 상태 표시줄에서윈도우 1252,
그 다음에인코딩으로 다시 열기, 그리고 마지막으로UTF-8.
볼 것으로 예상됩니다 Ãœ
. 파일이 여전히 손상되었으므로 이제전환하다그것을윈도우-1252
클릭하여 :
UTF-8 >구하다인코딩 > Windows 1252.
이제 파일이 원래 상태로 다시 변환되었습니다.
남은 것은풀다올바르게 (와UTF-8).
2. UTF-8로 인코딩
에서 settings.json
을 삭제합니다
"[css]": {"files.encoding": "windows1252"},
.
3. 파일을 닫았다가 다시 엽니다.
닫았다가 다시 엽니다 style.css
. 보이는지 확인하세요UTF-8상태 표시줄에서 다음을 볼 것으로 예상됩니다.
이야! 임무 완수.
3. Notepad++에서 인코딩과 변환 비교
차이점을 더 잘 이해하려면디코딩/인코딩그리고
변환 중다른 다목적 텍스트 편집기에서 이 작업이 어떻게 수행되는지 확인하는 것이 도움이 될 수 있습니다.메모장++.
이 유용한 답변유익한 그림의 차이점을 설명합니다.
부호화Notepad++에서는 다음과 같습니다.다시 열다인코딩 포함
VS 코드에서는 반면
변환 중Notepad++에서는 다음과 같습니다.
구하다인코딩 포함VS 코드에서.
4. ASCII, ANSI 및 UTF-8
몇 가지 사실은 무엇을 이해하는 데 도움이 될 수 있습니다.아스키, 안시, 그리고UTF-8이다.
ASCII 문자는 단일 바이트만 사용합니다.
또는 원하는 경우 바이트의 8비트 중 7비트를 사용합니다. 최상위 비트는 항상 0입니다.
이는 10진수로 0-127, 16진수로 0x00-0x7F,
비트로 0000 0000 - 0111 1111에 해당합니다.ANSI/Windows-1252 및 UTF-8은 모두 ASCII 문자를 ASCII 문자 자체로 인코딩합니다.
예를 들어 문자(문자)는k
순수 ASCII 문자입니다. 이것은1바이트(8비트) 10진수 107이 있고 16진수는 0x6B이며 비트는 0110 1011입니다.
결과적으로 ASCII 문자가 다음k
과 같다고 말하는 것은 잘못된 것입니다.~ 아니다ANSI 문자도 아니고~ 아니다UTF-8 문자. – 둘 다야!
텍스트 파일에 다음이 포함된 경우오직ASCII 문자인 경우 ANSI 및 UTF-8 인코딩이 일치합니다.
너할 수 없다하나를 다른 것과 구별하십시오. 그러한 파일은둘 다안시그리고UTF-8로 인코딩되었습니다. 5
^ 확대하려면 클릭하세요
상반부는윈도우-1252위 표는 0~127번에 해당하고 아래쪽 절반은 128~255번에 해당합니다. 후자는 비ASCII입니다.안시의 문자윈도우-1252.
아래 사진은 에서 가져온 것입니다.
UTF-8 및 ASCII 문자 차트,
해당 항목을 모두 표시합니다.윈도우-1252128-255번으로 다시 한 번 문자를 입력하세요.
몇 바이트(및무엇바이트) UTF-8 문자를 사용하는 경우 시도해 보세요.이 온라인 도구.
참고자료
- 스타일.css | 만 포함
/* Ü */
- Microsoft의 Cathy Wissink를 인용한 게시물
- ASCII가 아닌 UTF-8 문자는 각각 다음을 사용합니다.적어도2(최대 4)바이트
- 정보 교환을 위한 미국 표준 코드 표
- ANSI가 무엇인지에 대한 답 | 섹션 3의 표
- 유니코드 변환 형식 - 8비트 설명
- Windows-1252(CP-1252) 인코딩 테이블
- 메모장++ | 다운로드 페이지
- Notepad++에서 ANSI를 UTF-8로 변환하는 방법
- UTF-8 및 ASCII 문자 차트
- 변환기, UTF-8을 바이트(16진수)로
1
내가 제시하는 시나리오는 무엇을 설명하는지 그럴듯하게 설명하고 있다고 생각합니다.~할 것 같다
일어났습니다.
물론, 귀하의 상황이 발생한 원인이 무엇인지 확실히 알 수는 없습니다.
2 을
열려면 + (쉼표)를 settings.json
누른 다음Ctrl,설정 열기오른쪽 상단에 있는 아이콘:
macOS ⌘에서는 Ctrl.
삼
Windows 코드 페이지를 나타내는 데 사용되는 "ANSI"라는 용어는 역사적 참조입니다. [...].
마이크로소프트는 아직도 사용하고 있다서유럽용 ANSI와 상호교환적으로
윈도우-1252, 예를 들어 notepad.exe
일반적으로 에 있는 텍스트 편집기 에서 C:\WINDOWS\System32
. 이것은 내가 따르는 규칙이기도 합니다. 또한보십시오이 답변.
4 좀 더 정확하게 말하자면,ASCII가 아닌 UTF-8 문자는 각각 다음을 사용합니다.적어도 2(최대 4)바이트.
5 다음을 포함하는 텍스트 파일이 있다고 가정합니다.오직순수 ASCII 문자. 텍스트 편집기에서 해당 파일을 열었을 때 상태 표시줄에 ANSI가 표시되어 있다고 해서 해당 파일이 ANSI라는 의미는 아닙니다.~ 아니다UTF-8로 인코딩되었습니다. 이는 단지 이 텍스트 편집기가 ANSI를기본 부호화. 기본 인코딩이 UTF-8인 경우 편집기는 상태 표시줄에 UTF-8을 표시합니다.같은 파일에 대해.