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


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


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

我也尝试了本文描述的技术;
Unicode File IO in Codename One

最佳答案

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


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


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

10-08 03:07
查看更多