Sto caricando una stringa di grandi dimensioni sul servizio web. La stringa contiene un nuovo carattere di linea che è scritto come "\ n". I dati sembra qualche cosa come:comportamento ambiguo del carattere di nuova riga
05/06/2012 11:35:43 AM- DB exists, transferring data\n05/06/2012
11:48:20 AM- loadUserSpinners, cursor.getCount()=2\n05/06/2012
11:48:20 AM- Battery: 50%\n05/06/2012 11:48:20 AM- ITEM SELECTED: 0
i dati di cui sopra sono memorizzati nella stringa JsonArrObj
. Per caricare i dati/stringa, sto usando il seguente codice:
HttpParams httpParameters = new BasicHttpParams();
int timeoutConnection = 360000; //6 minutes
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
int timeoutSocket = 420000; //7 minutes
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
HttpClient httpClient = new DefaultHttpClient(httpParameters);
JSONArray jsonParams = new JSONArray();
Object[] params={IPAddress,Database,DbName,DbPassword,JsonArrObj};
for (int i = 0; i < params.length; i++) {
jsonParams.put(params[i]);
}
JSONObject jsonRequest = new JSONObject();
jsonRequest.put("id", Id);
jsonRequest.put("method", FunctionName);
jsonRequest.put("params", jsonParams);
JSONEntity entity = new JSONEntity(jsonRequest);
entity.setContentType("application/json; charset=utf-8");
HttpPost request = new HttpPost(URL);
request.setEntity(entity);
HttpResponse response = httpClient.execute(request);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
HttpEntity httpEntity = response.getEntity();
InputStream content = httpEntity.getContent();
BufferedReader reader = new BufferedReader(
new InputStreamReader(content,"iso-8859-1"),8);
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
LogE("result line: "+line);
String str=convertString(line);
parseJson(str);
}
content.close();
}
La stringa è stata caricata correttamente. Il problema che sto affrontando è: mentre la stringa viene convertita in jsonParams
, lo "\n"
nei dati di stringa viene convertito in "\\n"
di conseguenza, sul lato server, mostra una piccola casella invece di una nuova riga.
Quando si apre questa stringa nell'applicazione NOTEPAD, vengono visualizzati piccoli riquadri. Ma quando lo apro nell'app WORDPAD, il testo viene visualizzato su una nuova riga. Secondo me, potrei aver inserito "content-type" o encoding corretti. Si prega di suggerire una soluzione per lo stesso.
JsonArrObj= URLEncoder.encode(JsonArrObj, "utf-8");
ha dato errore durante il caricamento stesso ...
I dati che vengono inviati nel jsonParams- jsonArrObj
finalmente si presenta come:
05\/06\/2012 04:05:52 PM- DB exists, transferring
data\\n05\/06\/2012 04:32:56 PM- loadUserSpinners,
cursor.getCount()\\u003d2\\n05\/06\/2012 04:32:56 PM- Battery:
50%\\n05\/06\/2012 04:32:56 PM- ITEM SELECTED: 0
hai provato a mettere un extra "\" davanti a "\ n"? questo è "\\ n" invece di "\ n"? –
@ V.P.Verma, se metto un "\\ n", non sarò in grado di visualizzare il testo nella visualizzazione web. Inoltre, il problema è di conservare "\ n" così com'è. Il codificatore sta convertendo "\ n" in "non desiderato" "\\ n" .. – Pallavi
@ user370305 sì .. – Pallavi