Estoy cargando una cadena grande al servicio web. La cadena contiene un nuevo carácter de línea que se escribe como "\ n". Los datos se ve algo como:comportamiento ambiguo del nuevo carácter de línea
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
los datos anteriores se almacena en la cadena JsonArrObj
. Para cargar los datos/cadena, estoy usando el siguiente código:
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 cadena se ha cargado correctamente. El problema al que me enfrento es: mientras la cadena se convierte a jsonParams
, el "\n"
en los datos de cadena se convierte a "\\n"
como resultado, en el lado del servidor, muestra una pequeña casilla en lugar de nueva línea.
Cuando abro esta cadena en la aplicación NOTEPAD, muestra cuadros pequeños. Pero cuando lo abro en la aplicación WORDPAD, el texto se muestra en una nueva línea. De acuerdo a mí, podría haber ingresado el "tipo de contenido" correcto o la codificación. Por favor sugiere una solución para el mismo.
JsonArrObj= URLEncoder.encode(JsonArrObj, "utf-8");
dio error al subir en sí ...
Los datos que se envía en el jsonParams- jsonArrObj
finalmente parece:
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
¿Has intentado poner un "\" extra delante de "\ n"? eso es "\\ n" en lugar de "\ n"? –
@ V.P.Verma, si pongo un "\\ n", no podré mostrar el texto en la vista web. Además, el problema es preservar el "\ n" tal como está. El codificador está convirtiendo el "\ n" en "\\ n" no deseado. – Pallavi
@ user370305 sí .. – Pallavi