如果我使用FileIO.ReadTextAsync,ReadLinesAsync或DataReader读取文本文件,我只能为编码指定UnicodeEncoding枚举的成员.这包括出于某种原因只有Utf8,Utf16BE和Utf16LE.如何使用其他编码(如
Windows-1252或甚至常规Unicode(所有字符均为2字节))读取文本文件?
解决方法
汉斯的评论实际上给出了我的问题的答案.适用于Windows-1252的示例:
string filePath = ... StorageFile file = await StorageFile.GetFileFromPathAsync(filePath); IBuffer buffer = await FileIO.ReadBufferAsync(file); byte[] fileData = buffer.ToArray(); Encoding encoding = Encoding.GetEncoding("Windows-1252"); string text = encoding.GetString(fileData,fileData.Length);