2011-06-13 11 views
0

나는 다음 문장으로 그를 요청, 자바에서지도를 얻을 :구글지도 문자 인코딩 문제

<a href="http://maps.google.com/maps?q=<%=(infoHotel.getHotelType().getHotelTypeDescription() == null ? "" :infoHotel.getHotelType().getHotelTypeDescription()) + "+" + (infoHotel.getHotelName() == null ? "" : infoHotel.getHotelName())%>@<%=lat%>,<%=lon%>&ie=UTF-8&oe=UTF-8&=13&hl=<%=langmap%>" target="_blank" style="color:#000000"> 

완벽 간다. 그러나 Google지도의지도 확대 링크를 클릭하면 IE, Firefox 또는 Chrome 인 경우 다음으로 이동합니다.

IE : 내가 당신에게 테이블의 종류를 넣어 URL 표시 줄 : http://maps.google.com/maps?q=HÔTEL+TRYP BARCELO [email protected],2.0692870393395424&ie=UTF-8&oe=UTF-8&z=13&hl=es
검색 창 : H?TEL TRYP BARCELO [email protected],2.0692870393395424

크롬 : URL 표시 줄 : http://maps.google.com/maps?q=H%C3%94TEL+TRYP%20BARCELO%[email protected],2.0692870393395424&ie=UTF-8&oe=UTF-8&z=13&hl=es
검색 창 : HÔTEL TRYP BARCELO [email protected],2.0692870393395424

파이어 폭스 : 를 URL 표시 줄 : http://maps.google.com/maps?q=H%D4TEL+TRYP%20BARCELO%[email protected],2.0692870393395424&ie=UTF-8&oe=UTF-8&z=13&hl=es
검색 줄 : H?TEL TRYP BARCELO [email protected],2.0692870393395424

완벽하게 작동하는 것은 Chrome뿐입니다. "Hôtel"과 "Hôtel", 둘 다 ur bar와 search bar. 그러나 IE 또는 FireFox로 무엇이하고 있는지보십시오.

JSP 줄은 위에있는 것입니다. 다른 줄은 복사 + 붙여 넣기를하는 것입니다.

아무도 도와 줄 수 있습니까?

답변

1

첫째, 주소 표시 줄을보고이를 진단하는 것으로는 충분하지 않습니다. 일부 브라우저는 주소 표시 줄에 한 가지 (인코딩되지 않음)를 표시하지만 HTTP 요청에서 다른 것을 (인코딩 된) 보낼 수 있습니다. 서버로 보내지는 내용을 확실히 확인하려면 FireBug 또는 이와 동급 인에 대한 실제 요청을 검토하십시오.

또한 인코딩 비율은 문자셋에 따라 다릅니다. 즉, UTF-8 인코딩 비율은 iso-8859-1 인코딩 비율과 동일하지 않습니다.

브라우저가 요청할 때 현재 페이지의 charset을 사용하여 응답을 인코딩하는 경향이 있습니다. 멀티 파트 양식 제출 등에 대해 마찬가지입니다. 앵커 태그가있는 페이지의 인코딩을 지정하지 않은 경우 브라우저는 인코딩 (종종 iso-8859-1)을 추측합니다. 귀하의 경우 Firefox는 iso-8859-1 (또는 UTF-16)을 선택한 반면 Chrome은 UTF-8을 선택했습니다. http://www.fileformat.info/info/unicode/char/d4/index.htm

또한, 당신이 요청에서 매개 변수로 UTF-8 인코딩을 지정하는 것 같다 :

여기 Ô 숯의 세부 사항을 참조하십시오.

나는 확인하기 위해 JSP를 변경 제안 : 앵커 태그가있는 페이지에

  1. 내용은 UTF-8로 인코딩됩니다.
  2. 적절한 Content-Type 헤더 (및/또는 메타 태그)를 보내어 브라우저에 페이지가 UTF-8임을 알립니다.
1

URL 정보 - 비 ASCII 문자를 URL에 배치 할 수 없으면 반환하기 전에 URL Encoding을 수행해야합니다. 또한 공백은 불법이며 URL 인코딩도되어야합니다 (공백은 %20으로 인코딩 됨)

Chrome 및 FireFox는 URL 인코딩을 수행하기에 충분히 스마트하지만 브라우저의 표준이 아닙니다. .

검색 창 정보 - 결과를 어떻게 배치합니까? 직접 붙여 넣기 하시겠습니까? 아니면 문제가 있습니까?