다음을 통해 공유


완료 후 콘솔 인코딩이 UTF-8로 유지되지 않음

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 설정할 수 있습니다.

참고하십시오