gpt4 book ai didi

android - 使用 Realm 存储 unicode 字符

转载 作者:行者123 更新时间:2023-11-29 01:04:30 25 4
gpt4 key购买 nike

我想从文本文件中读取 JSON 字符串并将其对象存储到 Realm 文件中。

使用 Delphi 创建并以 UTF-8 编码的文本文件。我正在使用 Scanner 类从文本文件中读取字符串,然后从中提取一些 JSONObjects 和 JSONArrays。具有 unicode 字符的 JSON 对象和数组没有问题。我使用 Realm 对象的 createAllFromJson 方法将它们放入 realm 文件中:

RealmConfiguration RealmConfig = new RealmConfiguration.Builder()
.name("info.realm")
.deleteRealmIfMigrationNeeded()
.build();

Realm realm = Realm.getInstance(RealmConfig);
try{
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.createAllFromJson(AccountRecordObject.class, accounts);
realm.createAllFromJson(SanadRecordObject.class, sanads);
realm.createObjectFromJson(ConfigRecordObject.class, config);
}
});
}finally {
realm.close();
}

并从 Realm 对象中读取:

RealmConfiguration RealmConfig = new RealmConfiguration.Builder()
.name("info.realm")
.deleteRealmIfMigrationNeeded()
.build();

Realm realm = Realm.getInstance(RealmConfig);
try{
TextView txt = parentView.findViewById(R.id.fileSampleTxt);
String S = realm.where(AccountRecordObject.class).equalTo("AccNo", 300015).findFirst().getAccName();
txt.setText(S);
}finally {
realm.close();
}

问题是当我想从 Realm 文件中获取结果时,unicode 字符显示为 '?' : enter image description here

编辑:

当我使用 createObject 方法而不是 createAllFromJson 并从 JSONArray 传递值时,unicode 字符没有问题:

AccountRecordObject obj = realm.createObject(AccountRecordObject.class);
obj.setAccNo(10000001);
try {
obj.setAccName(accounts.getJSONObject(4).getString("AccName"));
}catch (JSONException E){
E.printStackTrace();
}

似乎在带有 unicode 字符的 createAllFromJson 和 createObjectFromJson 方法中存在问题

最佳答案

Realm 可以很好地存储 unicode,因此很可能是 Android Studio 中使用的字体不支持文件中的实际字形。

关于android - 使用 Realm 存储 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48309725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com