0

チャット プログラムと同じように、Android プロジェクトを開始しました。このようにサーバーからダウンロードされたデータ

1~my name~my username~message

いや、私の質問は、Android と互換性があり、上記の区切り文字 (~) を置き換える文字はありますか? 残念ながら、他の日にユーザーが文字 ~ を使用すると、プログラムがクラッシュします。

文字÷を使ったのですが、アンドロイドが読めず「?」になってしまいました。誰かが同じ問題を抱えていましたか??

4

3 に答える 3

0

区切り対象のフローに入れられるデータの可能な内容である区切り文字を使用すると、問題が発生します。

それを防ぐには、誤解される可能性のある方法で文字が発生しないようにする必要があります。

  1. 入力側で、発生を検出し、それらを特別なコードまたはエスケープするプレフィックス文字で置き換えるか、コンテンツを引用します (ただし、引用文字のリテラルの出現を処理する必要があります)。

  2. エスケープ文字を使用する場合、分割コードは、エスケープ文字に続く区切り文字または引用符で囲まれたシーケンス内の区切り文字を無視する必要があります。

  3. 出力側では、コードまたはエスケープ シーケンスをエンコードされた文字のリテラル インスタンスに置き換えるか、引用符を削除する必要があります。

他の人が述べたように、それらを処理するための標準的なスキームと関数がいくつかあります。

于 2012-06-24T15:21:01.760 に答える
0

サーバー側でJavaも使用している場合は、次のようなオブジェクトを定義して、サーバーに送信ChatMessageするだけです。SocketObject Stream

Burakが指摘したように、あなたのやり方は間違った方法です...しかし、他にもいくつかの方法があります.IMHOオブジェクトストリームがあなたにとって最も簡単な解決策かもしれません.

于 2012-06-24T15:10:00.737 に答える
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

簡単な検索で他の言語を簡単に見つけることができます。

于 2012-06-24T13:16:59.923 に答える