【发布时间】:2021-12-18 00:47:22
【问题描述】:
我正在开发适用于 Android 和 iOS 的 Xamarin Forms 应用
我正在尝试弄清楚如何将无英文字母传递给 Json 文件。
我的语言是瑞典语,每当我使用(Å、Ä、Ö)等字符时,应用程序就会崩溃。
请问我该如何解决这个问题?
DrawerViewModel.cs
class DrawerViewModel : BaseViewModel {
...
public static DrawerViewModel BindingContext =>
drawerViewModel = PopulateData<DrawerViewModel>("drawer.json");
...
private static T PopulateData<T>(string fileName)
{
var file = "CykelStaden.Data." + fileName;
var assembly = typeof(App).GetTypeInfo().Assembly;
T data;
using (var stream = assembly.GetManifestResourceStream(file))
{
var serializer = new DataContractJsonSerializer(typeof(T));
data = (T)serializer.ReadObject(stream);
}
return data;
}
}
抽屉.json
{
"itemList": [
{
"itemIcon": "\ue729",
"itemName": "Länd"
},
{
"itemIcon": "\ue72c",
"itemName": "Höjd"
},
{
"itemIcon": "\ue733",
"itemName": "Mått"
},
{
"itemIcon": "\ue72b",
"itemName": "Inställningar"
}
]
}
【问题讨论】:
-
它是如何崩溃的?你能产生一个minimal reproducible example 吗?如果一切都是unicode,你应该没问题。检查您的编码。
-
输入文件使用什么编码?
-
哪一行导致崩溃?有什么例外?你使用什么编码?您是否尝试过使用 Newtonsoft 而不是 Microsoft 序列化程序?
-
你说的是文件名还是文件内容?如果是后者,请确保使用 UTF-8 编码保存文件。
-
我已经添加了drawer.json文件,但我其实不知道如何检查我的应用程序的编码。
标签: c# json xml xamarin datacontractjsonserializer