1

我正在使用以下代码来读取文本文件的内容。该文件以某种 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.

有什么想法我在这里做错了吗?

谢谢

4

2 回答 2

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);

希望能帮助到你。

于 2012-07-30T05:01:59.053 回答
1

我在尝试读取使用“西欧(Windows)-代码页 1252”编码的文件中包含某些字符('、°、-)的文本文件时遇到了类似的问题。

我的解决方案是强制 Visual Studio 使用 UTF-8 编码保存文件。

  1. 在 Visual Studio 中打开文件
  2. 文件 > 高级保存选项... >
  3. 将编码更改为“Unicode(带签名的UTF-8)-代码页65001”
  4. 保存文件
于 2012-09-27T20:28:29.887 回答