2016-06-16 13 views
24

이 프로그램은 .NET 4 용으로 컴파일 할 때 제대로 작동하지만 .NET Core 용으로 컴파일 할 때 잘 동작합니다. 지원되지 않는 인코딩에 대한 오류는 이해하지만 해결 방법은 알지 못합니다..NET Core는 Windows 1252에 대해 모릅니다. 어떻게 수정해야합니까?

public class Program 
{ 
    public static int Main(string[] args) 
    { 
     System.Text.Encoding.GetEncoding(1252); 
    } 
} 
+0

C 번호 여기 MCV의 이슈이고; 태그가 속하지 않습니다. – Joshua

답변

41

는이 작업을 수행하려면, 당신은 System.Text.Encoding.CodePages 패키지에서 CodePagesEncodingProvider 인스턴스를 register해야합니다.

이를 위해 the System.Text.Encoding.CodePages package 설치 :

dotnet add package System.Text.Encoding.CodePages 

을 다음 (후에 암시 적으로 또는 명시 적으로 dotnet restore을 실행하는) 당신이 호출 할 수 있습니다

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); 
var enc1252 = Encoding.GetEncoding(1252); 

을 양자 택일로, 당신은 필요한 경우 그 하나 개의 코드 페이지 등록없이 직접 얻을 수 있습니다.

var enc1252 = CodePagesEncodingProvider.Instance.GetEncoding(1252); 
(210)
2

작성 해주세요 : csproj에서

<ItemGroup> 
    <PackageReference Include="System.Text.Encoding.CodePages" Version="4.3.0" /> 
</ItemGroup> 

합니다.

패키지 콘솔에서 'dotnet restore'라고 쓰면 어셈블리를 복원하십시오.

프랑수아와 샘플 코드 :

public class MyClass 
{ 
    static MyClass() 
    { 
     Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); 
    } 
} 
+0

이 질문에 대한 NET CORE 버전은 1.0입니다 (날짜부터 분명해야 함). 이 대답은 작동하지 않습니다. – Joshua

+0

잘못된 버전이라는 것을 알고 있습니다. (1.1에서 나에게 도움이되었지만, 매력처럼 작동했습니다.) Gracias amigo. – radpin