2012-06-24 3 views
0

채팅 프로그램처럼 안드로이드 프로젝트를 시작했습니다. 그냥이안드로이드 분할에 가장 적합한 문자

1~my name~my username~message 

아니처럼 내 서버에서 다운로드 데이터, 내 질문은, 안드로이드 와 호환 위의 구분 기호 (~)를 대체하는 것으로 모든 문자가있다. 임이 두려워, 다른 날에 사용자가 문자 ~를 사용하면 프로그램이 중단됩니다.

문자 ÷를 사용했지만 내 안드로이드 캔트가 그것을 읽었을 때 '?'로 바뀌 었습니다. 누군가가 같은 문제가 있었습니까 ??

+0

일부 특수 기호를 사용하는 것보다 JSON 또는 XML을 사용하십시오. – iNan

+0

다운로드 방법 ??? JSON을 사용하지 않는 이유는 무엇입니까 ?? –

+0

이것은 다소 나쁜 프로그래밍이지만, 나는 ~~~과 같은 여러 구분 기호를 사용해야합니다. – 0x5f3759df

답변

0

우선 클라이언트 - 서버 통신을위한 고유 한 형식을 만드는 것이 좋지 않으므로, 가장 좋은 조언은 json 또는 xml을 사용하는 것입니다. 클라이언트 측과 서버 측 모두에서 형식/구문 분석에 사용할 수있는 라이브러리가 많이 있으므로 형식 중 하나를 반환하기 위해 백엔드 언어를 사용해야합니다. PHP를위한 http://docs.python.org/library/json.html

: 안드로이드에 대한 http://php.net/manual/en/book.json.php

: http://developer.android.com/reference/org/json/JSONObject.html

쉽게 간단한 검색과 다른 언어를 찾을 수 있습니다 파이썬

.

0

또한 서버 측에서 Java를 사용하는 경우 ChatMessage과 같은 객체를 정의하고 SocketObject Stream을 서버에 보낼 수 있습니다.

Burak이 지적했듯이 길은 잘못된 길입니다. 그러나 몇 가지 다른 방법이 있습니다. IMHO 객체 스트림이 가장 쉬운 해결책 일 수 있습니다.

0

구분 기호로 묶은 흐름에 넣을 수있는 데이터의 내용 인 구분 기호를 사용하면 문제가 발생합니다.

이를 방지하려면 잘못 해석 될 수있는 방식으로 문자가 나타나지 않도록해야합니다. 입력 측에서

  1. ,

  2. (당신이 인용 문자의 문자 발행 수를 처리해야 다음 불구하고) 중 특수 코드로, 또는 탈출 접두사 문자로, 또는 내용을 인용 발생을 감지하고 교체
  3. 이스케이프 문자를 사용하는 경우 분할 코드는 이스케이프 문자 나 따옴표로 묶은 시퀀스 내의 구분 기호를 무시해야합니다.

  4. 출력 측에서는 코드 또는 이스케이프 시퀀스를 인코딩 된 문자의 리터럴 인스턴스로 바꾸거나 인용 문자를 제거해야합니다.

다른 사람들이 언급했듯이, 이들을 다루기위한 많은 표준 체계와 기능이 있습니다.

관련 문제