4

FileIO.ReadTextAsync、ReadLinesAsync、または DataReader を使用してテキスト ファイルを読み取る場合、エンコーディングには UnicodeEncoding 列挙型のメンバーのみを指定できます。これには、何らかの理由で Utf8、Utf16BE、および Utf16LE のみが含まれます。別のエンコーディング (Windows-1252 や通常の Unicode (すべての文字が 2 バイト) など) でテキスト ファイルを読み取るにはどうすればよいでしょうか?

これは、Windows ストア アプリがデスクトップ アプリケーションとテキスト ファイルを共有したり、インターネットからテキスト ファイルを読み取ったりする場合に重要です。

4

2 に答える 2

4

ハンスのコメントは、実際に私の質問に対する答えを与えてくれました。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, 0, fileData.Length);
于 2012-10-18T07:27:17.073 に答える