windows-runtime – 如何在WinRT中读取UFT8或UTF16以外的其他编码的文本文件?

前端之家收集整理的这篇文章主要介绍了windows-runtime – 如何在WinRT中读取UFT8或UTF16以外的其他编码的文本文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我使用FileIO.ReadTextAsync,ReadLinesAsync或DataReader读取文本文件,我只能为编码指定UnicodeEncoding枚举的成员.这包括出于某种原因只有Utf8,Utf16BE和Utf16LE.如何使用其他编码(如 Windows-1252或甚至常规Unicode(所有字符均为2字节))读取文本文件

如果Windows应用商店应用与桌面应用程序共享文本文件或从Internet读取文本文件,这可能很重要.

解决方法

汉斯的评论实际上给出了我的问题的答案.适用于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);

猜你在找的Windows相关文章