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 に答える