2014-09-01 2 views
-1

다른 웹 응용 프로그램에 GET 요청을 수행하는 웹 응용 프로그램이 있습니다. 내 페이지 중 하나에서 이름으로 검색 할 수있는 웹 양식이 있는데 여기에는 ééíóú와 같은 특수 문자가 포함될 수 있습니다.시스템 아구 로그 URL 인코딩

문제는 다른 매개 변수를 연결하여 URI를 작성하면 결과가 잘못 인코딩되었습니다. URLEncoder.encode (value)를 사용하면 결과가 올바르게 인코딩되지만이 메소드는 더 이상 사용되지 않습니다.

인코딩을 지정하면 URLEncoder.encode (value, "iso 9809-1")와 같이 작동하지만 작동은 이해하지만 이는 시스템에 따라 매우 다릅니다.

모든 시스템에서 작동하는 URL 인코딩 솔루션을 어떻게 작동시킬 수 있습니까?

+1

'URLEncoder.encode (value, "iso 9809-1")'가 시스템에 의존한다고 생각합니까? – bhargavg

+0

기본 HTTP 요청/응답 애플리케이션 프로토콜 *은 내부적으로 (모든 시스템이 아닌) 'UTF-8'을 사용해야합니다. 당신은 * UTF-8이 더 안전한 내기라고 안전하게 생각할 수 있습니다. –

+0

언급 한 메소드는 더 이상 사용되지 않을뿐 아니라 (a) 비추천 태그에서 명시 적으로 언급되고 (b)는 Javadoc의 같은 페이지에 나타납니다. 나는 여기에 시간 낭비보다는 읽어야한다고 제안한다. – EJP

답변

0

인코딩되지 않은 버전은 플랫폼 별 인코딩을 사용합니다.

"ISO-8859-1"(Latin-1)은 HTTP 프로토콜의 기본 인코딩입니다. 이는 "Windows-1252"(Windows Latin-1)의 하위 집합에 지나지 않습니다. 그리고 영어와 독일어와 같은 서유럽 언어의 일부를 다룹니다.

"UTF-8"이 가장 좋지만 서버에서 지원하지 않을 수도 있습니다. 시도 해봐.

+0

은 iso가 기본 인코딩을 알지 못합니다. UTF-8은 나를 위해 작동하지 않습니다. 감사! – MichelReap

+0

그렇기 때문에 자바 EE 서버는 유니버설 인코딩 (UTF-16은 HTML 태그로 인해 아시아 스크립트 용으로 더 압축되지 않음) 용으로 가장 적합한 UTF-8 용으로 구성되어야합니다. –