Нет сопоставления для символа Unicode на целевой многобайтовой кодовой странице в Windows App Save - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть приложение UWP, которое я развертываю как AppPackage, и я вижу ошибку отключения при попытке прочитать / сохранить файл в папке LocalState. Это происходит не каждый раз, поэтому я думаю, что файл заблокирован во время процесса в какой-то момент. Ошибка:

В целевой многобайтовой кодовой странице нет сопоставления для символа Unicode.

И код, который выдает ошибку

private const string SETTINGS_FILENAME = "settings.json";
private static readonly StorageFolder _settingsFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
public async static Task<ConfigWrapper> LoadSettings()
{
    try
    {
        StorageFile sf = await _settingsFolder.GetFileAsync(SETTINGS_FILENAME);
        if (sf == null) return null;

        string content = await FileIO.ReadTextAsync(sf, Windows.Storage.Streams.UnicodeEncoding.Utf8);
        return JsonConvert.DeserializeObject<ConfigWrapper>(content);
    }
    catch (Exception e)
    {
        DiagnosticsClient.TrackException(e);
        return null;
    }
}

public async static Task<bool> SaveSettings(ConfigWrapper data)
{
    try
    {
        StorageFile file = await _settingsFolder.CreateFileAsync(SETTINGS_FILENAME, CreationCollisionOption.ReplaceExisting);
        string content = JsonConvert.SerializeObject(data, Newtonsoft.Json.Formatting.Indented, new JsonSerializerSettings { });
        await FileIO.WriteTextAsync(file, content, Windows.Storage.Streams.UnicodeEncoding.Utf8);
        return true;
    }
    catch (Exception e)
    {
        DiagnosticsClient.TrackException(e);
        return false;
    }
}

Я сохраняю и читаю файл в UTF-8, поэтому я не уверен, почему произошла ошибка кодирования. Что мне нужно сделать (например, заблокировать файл), когда я сохраняю / читаю?

1 Ответ

0 голосов
/ 26 апреля 2020

Многие приложения сохраняют данные в собственном формате. Предоставленные вами гиббери sh, вероятно, таковы.

В таких приложениях часто есть способ «записи», «экспорта» или «сохранения как» данных. Ищите такие.

...