2012-06-24 21 views
0

我開始了一個android項目,就像聊天程序一樣。 數據從我的服務器下載就這樣最佳人物分裂Android

1~my name~my username~message 

不,我的問題是,是否有任何字符與Android兼容 來代替上述的分隔符(〜)。我害怕,如果在其他日子,用戶使用 字符〜,程序將崩潰。

我用的字符÷,但我的android不能讀它,它變成'?'。 有人有過同樣的問題嗎?

+0

使用JSON或XML比使用某些特殊符號。 – iNan

+0

下載如何?任何理由不使用JSON? –

+0

這是一些不好的編程,但是當我需要做這樣的事情時,我使用多個delimeters,比如~~~ – 0x5f3759df

回答

0

首先,爲客戶端 - 服務器通信創建自己的格式幾乎是個壞主意,我最好的建議是給json或xml一個鏡頭。在客戶端和服務器端都有很多可用的庫來形成/解析它們,你所要做的就是使用你的後端語言來返回其中一種格式。

對於Python:http://docs.python.org/library/json.html

爲PHP:http://php.net/manual/en/book.json.php

對於Android的:http://developer.android.com/reference/org/json/JSONObject.html

您可以輕鬆地找到簡單的搜索其他語言。

0

如果您在服務器端也使用Java,您可以定義一個對象,如ChatMessage,並將其按照SocketObject Stream發送給服務器。

Burak指出,你的方式是錯誤的方式......但還有其他幾種方法,恕我直言,對象流可能是最簡單的解決方案。

0

如果您使用的分隔符是放入要分隔的流中的數據的可能內容,那麼您將遇到問題。

爲了防止發生這種情況,您需要防止字符以可能被誤解的方式發生。

  1. 在輸入端,檢測事件和替換它們要麼具有特殊的代碼,或者用轉義前綴字符,或引用的內容(儘管,那麼你必須處理引號字符的文字出現次數)

  2. 如果您使用轉義字符,則拆分代碼必須忽略轉義字符後或引用序列中的任何分隔符。

  3. 在輸出端,您應該用編碼字符的文字實例替換代碼或轉義序列,或刪除任何引號字符。

正如其他人所提到的,有許多標準的方案和功能來處理它們。