CLI 콘솔 출력에 언급된 버그는 .NET SDK가 콘솔 전체의 인코딩을 UTF-8로 변경하여 호환성에 영향을 미쳤으나, 이 문제가 수정되었습니다. .NET SDK가 명령을 실행한 후 콘솔 인코딩은 더 이상 UTF-8로 유지되지 않습니다. 사용자가 해당 동작에 의존하게 될 수 있으므로 이는 호환성이 손상되는 변경입니다.
또한 .NET SDK는 더 이상 인코딩을 완전히 지원하지 않는 이전 Windows 10 버전에서 UTF-8로 변경하지 않습니다.
이전 동작
- SDK는 다음과 같은
dotnet build
명령을 실행한 후 터미널의 인코딩을 변경했습니다. - SDK는 UTF-8 인코딩을 사용하여 공식적으로 UTF-8을 지원하지 않는 Windows 10 버전에서도 영어가 아닌 문자를 올바르게 렌더링했습니다. 해당 버전에서 동작이 정의되지 않았습니다.
새 동작
- SDK는 다른 프로그램의 종료 후 터미널 인코딩을 변경하지 않습니다.
- 기본적으로 SDK는 더 이상 지원하지 않는 Windows 버전에 UTF-8을 사용하지 않습니다.
도입된 버전
7.0.3xx .NET 8 미리 보기 3
파괴적 변경 유형
이 변경 내용은 이진 호환성에 영향을 줄 수 있습니다. 또한 동작 변경입니다.
변경 이유
.NET SDK가 다른 프로그램에 대한 콘솔의 인코딩에 영향을 주는 기존 버그가 있었습니다. 이는 수정된 버그로 인해 발생한 주요 변경 사항입니다.
이전 버전의 Windows 10(즉, 2019년 11월 업데이트 이전 버전)은 UTF-8을 지원하지 않으므로 기본 동작은 UTF-8 인코딩을 사용하지 않아야 합니다. 대신 이제 옵트인을 사용할 수 있습니다.
권장 작업
앱이 Windows에서 코드 페이지를 변경해야 하는 경우 명령을 호출 chcp
하는 프로세스를 실행할 수 있습니다. 앱은 .NET SDK를 사용하여 인코딩을 변경해서는 안 됩니다.
.NET SDK가 영어 이외의 언어의 경우 인코딩을 UTF-8로 계속 변경하려는 UTF-8을 공식적으로 지원하지 않는 이전 Windows 10 버전의 경우 환경 변수 DOTNET_CLI_FORCE_UTF8_ENCODING
를 1로 true
설정할 수 있습니다.
참고하십시오
.NET