Βασ*_*δης 1 c# encoding codepages .net-core
我正在尝试使用 C# 中常见初始化编码页面之外的编码页面。
var greekEncoding = System.Text.Encoding.GetEncoding("1253");
using (var httpClient = new HttpClient())
{
var httpContent = new StringContent(xmlString, greekEncoding, "text/xml");
return await httpClient.PostAsync(baseUrl, httpContent);
}
Run Code Online (Sandbox Code Playgroud)
System.Text.Encoding有一个函数GetEncoding("iso-8859-7")或GetEncodings(),它返回所有可能的编码页面。
当我尝试检索“ISO-8859-7”或“Windows-1253”等编码页面时,默认情况下不会注册编码页面,结果是无法识别的字符。
如何在我的 dotnet core 解决方案中注册所有代码页?
经过很多天的搜索,我在 .net-core 中发现,我们必须在Encoding中插入注册。
这个问题的解决方案是在编码类中注册一个提供者。
EncodingProvider provider = CodePagesEncodingProvider.Instance;
Encoding.RegisterProvider(provider);
Run Code Online (Sandbox Code Playgroud)
只需将这两行放入 Startup.cs 或 Program.cs 或 Main.cs 中,您的解决方案将注册提供程序以使用所有不常见的字符集。
常见编码页面:
该解决方案已在此网页(https://learn.microsoft.com/en-us/dotnet/api/system.text.codepagesencodingprovider?view=net-6.0#remarks)中进行了解释,但没有示例。
这种误解出现在dotnet core中。
归档时间: |
|
查看次数: |
5794 次 |
最近记录: |