在iOS上代理一个Unicode /表情符号

时间:2017-07-11 21:02:53

标签: ios sql file-io codenameone

我一直在开发一款包含短信的应用 我们注意到表情符号字符引起了一些问题 我已经更新了服务器数据库以支持它们,并且在Android和模拟器上一切正常,但iOS失败了。 出于某种原因,当你发送多个表情符号时,只有一些表情符号到达 我们的数据同步系统将所有内容打包成一个tar球,然后将其解压缩到存储中并读入数据库 我认为以下几点之一导致了这种编码问题;

  • 在网络传输期间(不太可能,因为它是二进制文件)
  • 写入磁盘时
  • 从磁盘读取时
  • 写入SQL时
  • 从SQL阅读时

通过下载应用程序的容器并检查db文件,我可以看到它已经在它到达时已被破坏,所以我认为它是文件内容或写入SQL。

我也尝试过这里描述的技术; Unicode File IO in Codename One

2 个答案:

答案 0 :(得分:1)

沿线编码中断的某个点。确保您不使用任何有问题的方法,例如:

  • new String(byte[])
  • String.toByteArray()
  • OutputStreamWriter(OutputStream)
  • InputStreamReader(InputStream)

还有一些,但所有这些都可能失去编码。您需要将此范围缩小到您失败的确切方法。

答案 1 :(得分:0)

我自己也遇到同样的问题。对我来说,解决此问题的方法是在将文本保存到sqlite中之前在iOS上调用以下内容

for n in mylist:
        if n[0] % 2 != 0: