.NET Core는 Windows 1252에 대해 알지 못합니다. 해결 방법은 무엇입니까?
이 프로그램은 에 대해 컴파일할 때 제대로 작동합니다.NET 4이지만 에 대해 컴파일할 때는 그렇지 않습니다.NET 코어.인코딩이 지원되지 않는 오류는 이해하지만 수정 방법은 이해하지 못합니다.
Public Class Program
Public Shared Function Main(ByVal args As String()) As Integer
System.Text.Encoding.GetEncoding(1252)
End Function
End Class
이 작업을 수행하려면 에서 인스턴스를 등록해야 합니다.System.Text.Encoding.CodePages꾸러미
그렇게 하려면 시스템을 설치합니다.텍스트, 인코딩.CodePages 패키지:
dotnet add package System.Text.Encoding.CodePages
(암묵적으로 또는 명시적으로 실행한 후)dotnet restore전화할 수 있습니다.
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var enc1252 = Encoding.GetEncoding(1252);
또는 하나의 코드 페이지만 필요한 경우 등록 없이 직접 코드 페이지를 받을 수 있습니다.
var enc1252 = CodePagesEncodingProvider.Instance.GetEncoding(1252);
다음과 같이 적으십시오.
<ItemGroup>
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.3.0" />
</ItemGroup>
csproj에서.
패키지 콘솔에 '도트넷 복원'을 기록하고 어셈블리를 복원합니다.
샘플용으로 이 코드를 작성합니다.
public class MyClass
{
static MyClass()
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
}
}
다음은 다음에 대한 설명입니다.
윈도우즈 데스크톱용 .NET Framework는 대규모 유니코드 및 코드 페이지 인코딩 세트를 지원합니다.그러나 NET Core는 다음 인코딩만 지원합니다.
- ASCII(코드 페이지 20127). 인코딩으로 반환됩니다.ASCII 속성.
- ISO-8859-1(코드 페이지 28591).
- UTF-7(코드 페이지 65000). 인코딩으로 반환됩니다.UTF7 속성.
- UTF-8(코드 페이지 65001). 인코딩으로 반환됩니다.UTF8 속성.
- UTF-16 및 UTF-16LE(코드 페이지 1200). 인코딩으로 반환됩니다.유니코드 속성.
- UTF-16BE(코드 페이지 1201). 유니코드 인코딩을 호출하여 인스턴스화됩니다.유니코드 인코딩 또는 유니코드 인코딩입니다.큰 Endian 값이 true인 Unicode Encoding 생성자입니다.
- UTF-32 및 UTF-32LE(코드 페이지 12000). 인코딩으로 반환됩니다.UTF32 속성.
- UTF-32BE(코드 페이지 12001). 빅Endian 매개 변수를 가진 UTF32E 인코딩 생성자를 호출하고 메서드 호출에 true 값을 제공하여 인스턴스화됩니다.
코드 페이지 20127 이외에는 코드 페이지 인코딩이 지원되지 않습니다.그
CodePagesEncodingProvider클래스 확장EncodingProvider이 코드 페이지를 사용할 수 있도록 설정합니다.NET 코어.
따라서 다음과 같은 추가 인코딩을 사용하려면 인코딩 공급자를 먼저 등록해야 합니다.Windows-1252.
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
CodePagesEncodingProvider 코드 페이지에 대한 인코딩 공급자에 대한 액세스 권한을 제공합니다. 그렇지 않으면 바탕 화면에서만 사용할 수 있습니다.NET Framework.
그런 다음 더 많은 인코딩을 찾을 수 있고 다음을 얻을 수 있습니다.Windows-1252too:too:too:too:
Encoding win1252 = Encoding.GetEncoding(1252);
로 다에대참필다니합요가조음에 대한 합니다.System.Text.Encoding.CodePages.dll용할을 CodePagesEncodingProvider일부 .net 버전에서는 프로젝트에 nuget 패키지를 추가해야 합니다.
Install-Package System.Text.Encoding.CodePages
언급URL : https://stackoverflow.com/questions/37870084/net-core-doesnt-know-about-windows-1252-how-to-fix
'programing' 카테고리의 다른 글
| \r\n, \r 및 \n의 차이는 무엇입니까? (0) | 2023.05.09 |
|---|---|
| MongoParseError: URI에 호스트 이름, 도메인 이름 및 tld가 없습니다. (0) | 2023.05.09 |
| $name 필드는 누적 개체여야 합니다. (0) | 2023.05.09 |
| 작업 완료 시기소스를 사용하시겠습니까? (0) | 2023.05.09 |
| 발송인.호출 시작: 람다를 시스템으로 변환할 수 없습니다.위임 (0) | 2023.05.09 |