2012-05-01 6 views
1

私は送信時にjavascript関数を実行する私のページにフォームを持っています。この関数は、新しいウィンドウを開きますwindow.open(uri,…)FirefoxのJavaScriptのエスケープエラー

これはドイツ語のフォームなので、ウムラウトとß、ä、ö、üなどの文字があります。

私はで入力の値を私のuri変数に渡します。 Chromeの場合

これは完全に正常に動作し、渡されたURLは、この

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

のように見えますが、私はFirefoxでサイトを開いたとき、それは次のようになります。

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

それでは、どのように私は達成することができますどちらのブラウザでも正しい結果が得られますか?

私は

+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}とstuffを設定しましたが、ソースで見ることができます。この機能には、データベースを検索するために入力値をGETで指定するhaendlersがあります。 – mkampitsch

答えて

0

がUTF-8に文字コードを設定するには、フォームを使用して... encodeURIからencodeURIComponentでなどほぼすべてのものを試してみました:

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

し、同様に頭の中でそれを設定します。

<head> 
<meta charset="utf-8"> 
</head> 
関連する問題