【问题标题】:codename one "cn1-data-access-lib" utf-8 source代号一“cn1-data-access-lib” utf-8 源码
【发布时间】:2018-07-10 07:43:05
【问题描述】:

我开始使用我的第一个 CN1 应用程序。 我必须使用 sqlite 数据库访问权限。我使用了 cn1-data-access-lib 从 json 文件导入功能。 它可以工作,但我导入的文件是 UTF-8 编码的,并且包含重音字符。匈牙利语就是这样???? . 导入后,重音字符在模拟器中变得无法识别。 在buidserver上做了一个应用程序,该应用程序在android手机上运行良好。电话设置为匈牙利语。 我检查了源代码。导入器类具有“public final void importJSON(InputStream is, String selector)”方法,该方法在没有第二个(charset 或 charsetName)参数的情况下实例化 InputStreamReader。此过程不能被覆盖。 有解决方案吗? 如果我可以腾出手来,我就可以使用自定义的 inporter 类。这是对未知问题的解决方案。 最好的祝福, 彼得

【问题讨论】:

  • 什么是importJSON 我在我们的资源中找不到它?你用的是Result类的处理包吗?如果是这样,它接受 Reader 对象。 JSONParser 也是如此
  • 嗨,这是我的代码的一部分:link 我输入的排序 json 文件:link 最好的问候,Péter
  • DAOProvider 是什么?请注意,您可以编辑您的问题并在其中包含其他信息。然后您可以在此处发表评论,以便我收到通知并尝试再次回答
  • DaoProvider 合格的名字是 ca.weblite.codename1.db.DAOProvider。那是在官方的 cn1-data-access-lib 中。源代码你可以在这里看到:github.com/shannah/cn1-data-access-lib/blob/master/src/ca/…。最好的问候,彼得

标签: utf-8 codenameone dao non-ascii-characters


【解决方案1】:

看起来像是 DAO cn1lib 中的一个 bug:https://github.com/shannah/cn1-data-access-lib/blob/master/src/ca/weblite/codename1/db/Importer.java#L254

它使用这个代码:

Map data = parser.parseJSON(new InputStreamReader(is));

至少应该默认为 UTF8。我为此创建了一个拉取请求:https://github.com/shannah/cn1-data-access-lib/pull/10

史蒂夫应该在那里解决它。

【讨论】:

  • Steve 更改了 ca.weblite.codename1.db.Importer.java 但 Github 上的 CN1DataAccess.cn1lib 文件未更新。我尝试了“更新项目库”按钮。 CodenameOne.jar 已更新,但 cn1-data-access-lib 没有。是否有可能因此我不必学习创建图书馆?学习代号一也足够了。提前致谢。
  • 我让他这样做github.com/shannah/cn1-data-access-lib/pull/10 他这样做后需要一段时间,因为这个过程不是自动的
猜你喜欢
  • 1970-01-01
  • 2010-10-06
  • 1970-01-01
  • 2011-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多