2014-01-24 2 views
0

서버로 정보를 보내려고합니다. charset 인코딩은 UTF-8로 설정됩니다. JSP 페이지 인코딩도 UTF-8으로 설정됩니다. 나는 봄 mvc를 사용한다인코딩 정보가 서버에 전송되는 중

나는 json을 형성하고, 그것을 서버에 보내려고 노력한다. 하지만 응답 본문을 얻을 때 단어들 사이에 이상한 기호가 나타납니다. attributeCategory%5B0%5D%5Batt. 나는이 모든 문제를 해결하기 위해 utf-8을 검색 할 것을 제안했으며 모든 제안을 받았다.

UPDATE I는 서버 측에서 URLDecoder.decode(body, "ISO-8859-1"); 모든 것이 정상적인 형태로 인코딩 된이 줄을 추가

. 그래서 난 내 JSON 또는 다른 뭔가를 변경해야하는 것을 제 질문은 UTF-8 인코딩으로 내 프로그램 작업을 만들기 위해

+0

응답의 Content-Type 헤더가'application/x-www-form-urlencoded' 인 경우 [URLDecoder.decode'] (http://docs.oracle.com)를 통해 응답 본문 텍스트를 실행해야합니다 /javase/7/docs/api/java/net/URLDecoder.html#decode%28java.lang.String,%20java.lang.String%29). 문서에서 권장하는대로 두 번째 인수로 "UTF-8"을 전달해야합니다. – VGR

답변

0
  • %5B = [ (16 진수 코드 5B)
  • %5D = ] (16 진수 코드 5D)

이것은 같은 이름의 HTML INPUT 필드에서 비롯되었을 수 있으므로 사실 attributeCategory[0][att을 의미합니다 (여기서는 아마도 miscopied).

JavaScript 일 수도 있습니다.

[, ] 등과 같이 기본이 아닌 문자의 HTTP 전송을위한 URL 인코딩입니다. 인코딩과 관련이 없습니다.

이 오류의 원인이 여기에 표시되기를 바랍니다.

+0

그래서 내 아약스 코드에 뭔가를 추가하거나 서버 측에서 charset 필터와 같은 것을 작성하여 % 5B 대신 [] 기호가있는 일반 텍스트를 얻으시겠습니까 ??? –

+0

미안하지만 잘 모르겠다. 'attributeCategory [0]'과 같은 것이 전송되어야하는 이유는 무엇입니까? JSON 필드 이름으로'{name : "value"}'이면 전체 문자열을 따옴표로 묶으십시오 (''name "'). –

관련 문제