我收到了一些编码的文本,但我不知道使用了什么字符集.有没有办法使用Python确定文本文件的编码?如何检测文本文件的编码/代码页处理C#.
我尝试检测我的文件中使用了哪个字符编码.
我尝试使用此代码来获取标准编码
public static Encoding GetFileEncoding(string srcFile)
{
// *** Use Default of Encoding.Default (Ansi CodePage)
Encoding enc = Encoding.Default;
// *** Detect byte order mark if any - otherwise assume default
byte[] buffer = new byte[5];
FileStream file = new FileStream(srcFile, FileMode.Open);
file.Read(buffer, 0, 5);
file.Close();
if (buffer[0] == 0xef && buffer[1] == 0xbb && buffer[2] == 0xbf)
enc = Encoding.UTF8;
else if (buffer[0] == 0xfe && buffer[1] == 0xff)
enc = Encoding.Unicode;
else if (buffer[0] == 0 && …Run Code Online (Sandbox Code Playgroud) 这个程序在为.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) 我正在尝试用C#编写一个程序,它将带有多个联系人的vCard(VCF)文件拆分为每个联系人的单个文件.据我所知,vCard需要保存为ANSI(1252)才能让大多数手机读取它们.
但是,如果我用打开VCF档案StreamReader,然后将其用回写StreamWriter(设置1252的编码格式),所有的特殊字符,如å,æ和ø越来越写成?.当然ANSI(1252)会支持这些字符.我该如何解决?
编辑:这是我用来读写文件的代码片段.
private void ReadFile()
{
StreamReader sreader = new StreamReader(sourceVCFFile);
string fullFileContents = sreader.ReadToEnd();
}
private void WriteFile()
{
StreamWriter swriter = new StreamWriter(sourceVCFFile, false, Encoding.GetEncoding(1252));
swriter.Write(fullFileContents);
}
Run Code Online (Sandbox Code Playgroud) c# ×2
encoding ×2
windows-1252 ×2
.net ×1
.net-core ×1
python ×1
text-files ×1
unicode ×1
vb.net ×1