Tôi đang tải một chuỗi lớn lên dịch vụ web. Chuỗi chứa ký tự dòng mới được viết là "\ n". Dữ liệu trông giống như sau:hành vi mơ hồ của ký tự dòng mới
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
dữ liệu trên được lưu trữ trong chuỗi JsonArrObj
. Để tải lên dữ liệu/chuỗi, tôi đang sử dụng mã sau:
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();
}
Chuỗi được tải lên thành công. Vấn đề tôi đang phải đối mặt là: trong khi chuỗi đang được chuyển đổi thành jsonParams
, dữ liệu chuỗi "\n"
được chuyển đổi thành "\\n"
kết quả là ở phía máy chủ, chuỗi này hiển thị một hộp nhỏ thay cho dòng mới.
Khi tôi mở chuỗi này trong ứng dụng NOTEPAD, nó sẽ hiển thị các hộp nhỏ. Nhưng khi tôi mở nó trong ứng dụng WORDPAD, văn bản được hiển thị trên một dòng mới. Theo tôi, tôi có thể đã nhập đúng "loại nội dung" hoặc mã hóa. Xin đề nghị một giải pháp cho cùng.
JsonArrObj= URLEncoder.encode(JsonArrObj, "utf-8");
đã lỗi khi tải lên bản thân ...
Các dữ liệu được gửi trong jsonParams- jsonArrObj
cuối cùng trông giống như:
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
bạn đã thử thêm "\" vào trước "\ n" chưa? đó là "\\ n" thay vì "\ n"? –
@ V.P.Verma, nếu tôi đặt "\\ n", tôi sẽ không thể hiển thị văn bản trong chế độ xem web. Ngoài ra, vấn đề là để bảo toàn "\ n". Bộ mã hóa đang chuyển đổi "\ n" thành không muốn "\\ n" .. – Pallavi
@ user370305 yes .. – Pallavi