0

我的 Android 应用程序使用BroadcastReceiver. 然后它用于ObjectOutputStream将其发送到我的服务器,该服务器当然使用ObjectInputStream. 如果我在 Android 应用程序中打印消息并在 LogCat 中查看,则接收到的消息会正确显示。所有字符都正确显示。但是当它通过这些对象流发送时,它会发生变化并且不再正确显示。所有特殊字符都替换为问号。

例如,我收到一条带有大拇指图标的消息。我可以在 LogCat 和 Android 的文本消息软件中看到它作为图标,但我的服务器将它作为问号接收,并在 MySQL 数据库中保存为两个问号。

我该如何处理这些对象输出和输入流?

我不会将消息作为文本发送,而是作为对象发送。我有一个名为的类SMSMessage,其中包含消息的所有信息。我使用套接字发送了这个。

4

1 回答 1

0

听起来像是编码问题。如果字符不能以特定编码表示,则通常将其转换为问号或框(或框内的问号)。您可以通过创建一个包含 ISO-8859-15 编码的字母“äöå”的文件并在文本编辑器中以 UTF-8 格式打开它来看到这一点。

然而,据我所知,ObjectStreams 不应该像那样破坏编码。您可以尝试使用除 ObjectStreams 之外的其他流(我假设 Android 不限于它们)并指定合适的编码(UTF-8、UTF-16)以查看它是否正确通过。

于 2013-10-16T12:19:41.123 回答