相关疑难解决方法(0)

.NET Core不了解Windows 1252,如何修复?

这个程序在为.NET 4编译时工作正常,但在为.NET Core编译时​​也能正常工作.我理解不支持编码的错误,但不知道如何解决它.

Public Class Program
    Public Shared Function Main(ByVal args As String()) As Integer
        System.Text.Encoding.GetEncoding(1252)
    End Function
End Class
Run Code Online (Sandbox Code Playgroud)

vb.net character-encoding windows-1252 .net-core

58
推荐指数
2
解决办法
2万
查看次数

无法以 Windows-1252 编码写入文件,请改为使用 UTF-8

这让我发疯。我想读取许多使用 Windows-1252 编码的文本文件(位于我的项目目录之外),将它们编辑为字符串,然后写回这些文件,再次作为 Windows-1252。然而 Visual Studio 却不断生成 UTF-8 文件。

这是我的文件读取代码:

using (StreamReader sr = new StreamReader(fileName, Encoding.Default))
{
    String s = sr.ReadToEnd();
    return s;
}
Run Code Online (Sandbox Code Playgroud)

这是我的文件写入代码:

File.WriteAllText(fileName, joinedFileString, Encoding.Default);
Run Code Online (Sandbox Code Playgroud)

在这两者之间,我执行了各种编辑,包括添加、删除和 grep 换行符,但我认为这些可以通过在 File.WriteAllText 中指定编码来以正确的编码进行解析。请注意,我已在 Visual Studio 的“高级保存选项”中将默认编码更改为 1252。因此 Encoding.Default 应引用正确的编码。

但它不断将文件转换为 UTF-8!:-(

c# character-encoding windows-1252 visual-studio-2017

2
推荐指数
1
解决办法
4028
查看次数

偶尔的System.NotSupportedException:没有数据可用于编码1252

在Windows IIS上的.NET Core 2.0中,我正在将一个部分html文件读入字符串:

   string sWelcomeContent = System.IO.File.ReadAllText(welcomepagePath, System.Text.Encoding.GetEncoding(1252));
Run Code Online (Sandbox Code Playgroud)

这很正常,但很少(去年发生过两次),我收到一个错误:System.NotSupportedException:没有数据可用于编码1252.

任何想法为什么会这样?

asp.net-core

1
推荐指数
1
解决办法
352
查看次数