2012-05-01 4 views
1

제출할 때 자바 스크립트 기능을 실행하는 내 페이지에 양식이 있습니다. 이 함수는 window.open(uri,…)Firefox 자바 스크립트 이스케이프 오류

과 같은 새 창을 엽니 다. 이것은 독일어 형태이므로 움라우트와 ß, ä, ö, ü 같은 다른 문자가 있습니다.

그래서 입력 값을 escape(input.value)과 함께 uri 변수에 전달합니다.

크롬에서이 완벽하게 잘 작동하고 전달 된 url은이

index.php?PLZ=&Ort=Ha%DFloch 

처럼 보이지만, 나는 파이어 폭스에서 사이트를 열 때 그것은 다음과 같습니다

index.php?PLZ=&Ort=Ha�loch 

그래서이 달성 할 수있는 방법 두 브라우저에서 모두 올바른 결과를 얻었습니까?

나는 등에 encodeURIComponent로에 encodeURI에서 거의 모든 노력을 ...

+2

문자가 다른 문자 세트의 문자로 취급되기 때문에 문자가 FF와 Chrome에서 다르게 인코딩되었을 수 있습니다. 명시 적으로 페이지 문자 세트 (''태그 안에)를 설정 했습니까? – Imp

+4

또한 필자가 아는 한'escape'는'encodeURI'와'encodeURIcomponent'를 위해 더 이상 사용되지 않습니다. 'encodeURI'는':'또는'/'와 같이 URL의 공통 문자를 무시하므로'http : // example.com/index.php' URL의 인코딩되지 않은 시작 부분을 사용하고 나머지는' encodeURIcomponent'. – Imp

+0

[여기] (http://www.welde.de/wp-content/themes/welde/auto.html)는 문제가있는 곳입니다. "Haßloch"를 입력하고 "Suchen!"을 클릭하면 오류가 표시됩니다. {charset}을 (를) 설정했지만 소스에서 볼 수 있습니다. 입력 값이 데이터베이스를 검색하기 위해 GET을 통해 주어지는이 함수 haendlers가 있습니다. – mkampitsch

답변

0

를 사용하여 UTF-8로 문자 인코딩을 설정하는 형태 :

<form accept-charset="utf-8"> 

뿐만 아니라 머리에서 설정 :

<head> 
<meta charset="utf-8"> 
</head> 
관련 문제