2012-05-01 74 views
1

我的頁面上有一個窗體,它在提交時運行一個javascript函數。此功能用window.open(uri,…)Firefox的JavaScript轉義錯誤

打開一個新窗口由於這是一種德語形式,因此有變音符號和其他字符,如ß,ä,ö,ü。

因此,我將輸入值與escape(input.value)一起傳遞給我的uri變量。

在Chrome運行完美,所傳遞的URL看起來像這樣

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

,但是當我在Firefox中打開該網站,它看起來像這樣:

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

所以,我怎麼能實現正確的結果在兩個瀏覽器?

我試圖幾乎一切從是encodeURI到encodeURIComponent方法等等

+2

也許在FF和Chrome中字符的編碼方式不同,因爲他們將它們視爲來自不同的字符集。你有沒有明確設置頁面字符集(在''標籤中)? – Imp

+4

此外,據我所知,'escape'已被棄用,以支持'encodeURI'和'encodeURIcomponent'。請注意'encodeURI'忽略一個url的常見字符,比如':'或'/',所以你應該使用未編碼的url開頭'http:// example.com/index.php',然後用' encodeURIcomponent'。 – Imp

+0

[這裏](http://www.welde.de/wp-content/themes/welde/auto.html)是我的網站,我有麻煩。請輸入「Haßloch」,然後單擊「Suchen!」時看到錯誤消息 我已經設置了{charset}和東西,但是你可以在源代碼中看到它。有一個函數haendlersuche,其中輸入值是通過GET來搜索數據庫的。 – mkampitsch

回答

0

使用形式的字符編碼設置爲UTF-8:

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

,並設置它的頭,以及:

<head> 
<meta charset="utf-8"> 
</head>