我开始了一个android项目,就像聊天程序一样。像这样从我的服务器下载的数据
1~my name~my username~message
不,我的问题是,是否有任何与 android 兼容的字符来替换上面的分隔符 (~)。恐怕,如果在其他日子,用户使用字符〜,程序会崩溃。
我使用了字符÷,但我的android无法读取它,它变成了'?'。有人遇到同样的问题吗??
如果您也在服务器端使用 Java,您可以定义一个对象,ChatMessage
然后将其发送Socket
到Object Stream
服务器。
正如 Burak 指出的那样,您的方式是错误的方式......但是还有其他几种方式,恕我直言,对象流可能是您最简单的解决方案。
首先,为客户端-服务器通信创建自己的格式几乎是个坏主意,我最好的建议是尝试使用 json 或 xml。客户端和服务器端都有很多可用的库来形成/解析它们,您所要做的就是使用后端语言来返回其中一种格式。
对于python:http ://docs.python.org/library/json.html
对于 php: http: //php.net/manual/en/book.json.php
对于安卓:http: //developer.android.com/reference/org/json/JSONObject.html
您可以通过简单的搜索轻松找到其他语言。
如果您使用分隔符,它是放入您正在分隔的流中的数据的可能内容,您将遇到问题。
为了防止这种情况,您需要防止角色以可能被误解的方式出现。
在输入端,检测出现并用特殊代码或转义前缀字符替换它们,或引用内容(尽管你必须处理引号字符的文字出现)
如果使用转义字符,则拆分代码必须忽略转义字符后或引用序列中的任何分隔符。
在输出端,您应该用编码字符的文字实例替换代码或转义序列,或删除任何引用字符。
正如其他人所提到的,有许多标准方案和功能来处理它们。