2012-12-28 2 views
1

사용자 입력 (거리, 도시)의 도움으로 화면을 긁는 앱을 만듭니다. 그러나 거리 또는 도시에는 'å', 'ä'및 'ö'등의 문자가 포함될 수 있습니다.encodeURIComponent가 원하는 출력을 제공하지 않습니다.

encodeURIComponent를 시도했지만 페이지의 양식에 거리 및 도시를 직접 입력 할 때 긁히는 사이트와 동일한 결과를 출력하지 않습니다 (아래). 원하는 출력을 얻기 위해 무엇을 대신 사용할 수 있습니까?

var url = 'http://www.foosite.com/result.jspv?street=' + 
encodeURIComponent(street) + '&city=' + encodeURIComponent(city); 

From my app: http://www.foosite.com/result.jspv?street=Vaktarev%C3%A4gen&city=M%C3%B6nster%C3%A5s 
From the site: http://www.foosite.com/result.jspv?street=Vaktarev%E4gen&city=M%F6nster%E5s 
+2

아마도'encodeURIComponent' 대신에'escape'를 사용할 것입니다. 전자는 "사이트에서"결과를 제공합니다. – pimvdb

+0

'encodeURIComponent'는 UTF-8 값을 생성합니다; 사용하고있는 사이트는'escape '를 사용하여 생성 된 유니 코드 코드 포인트를 사용합니다. 'ä '라는 예는 http://www.utf8-chartable.de/의 코드 포인트'U + 00E4'를 참조하십시오. – apsillers

답변

1

이 사이트는 아마 유니 코드 코드 포인트를 반환 escape을 사용하고 있습니다. 반대로 encodeURIComponent은 UTF-8 값을 생성합니다. (ä의 서로 다른 값을 http://www.utf8-chartable.de/U+00E4 코드 포인트까지 아래로 스크롤합니다.)이 표준의 어떤 종류에 지정되지 않기 때문에 내가 일반적으로 escape 기능의 사용을 억제 할

. 그러나, 아마도 슬프게도 선호하는 encodeURIComponent을 사용하지 않는 사이트의 동작을 일치시키는 가장 쉬운 방법이기 때문에 여기서는 가장 좋은 옵션입니다. 비표준 임에도 불구하고 사실상 모든 브라우저에서 작동해야합니다.

+0

고마워요! :-) – holyredbeard

관련 문제