我正在使用以下代码来读取文本文件的内容。该文件以某种Utf8格式编码:
String File = "ms-appx:///Arabic/file.txt";
contents = await Windows.Storage.PathIO.ReadTextAsync(File, Windows.Storage.Streams.UnicodeEncoding.Utf8);
但上面给出了错误:
WinRT information: No mapping for the Unicode character exists in the target multi-byte code page.
我在这里做错了什么想法?
由于
答案 0 :(得分:1)
尝试使用Windows.Storage.Streams.DataReader:
StorageFolder folder =
Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFile file = await folder.GetFileAsync("ms-appx:///Arabic/file.txt");
var stream = (await file.OpenAsync(FileAccessMode.Read));
Windows.Storage.Streams.DataReader mreader =
new Windows.Storage.Streams.DataReader(stream.GetInputStreamAt(0));
byte[] dgram = new byte[file.Size];
await mreader.LoadAsync((uint)dgram.Length);
mreader.ReadBytes(dgram);
希望它有所帮助。
答案 1 :(得分:1)
我让a similar issue尝试在使用“西欧(Windows) - 代码页1252”编码的文件中读取包含某些字符(',°, - )的文本文件。
我的解决方案是强制Visual Studio使用UTF-8编码保存文件。