私はApacheで実行されているjavascriptにちょっと慣れていませんが、次の問題があります。
エスケープを使用して、javascript を使用して URL で文字列「Café」を使用できるようにします。
"&place=" + escape(placename);
文字列は "Caf%E9" に変換され、次のページ (php ページ) では "Café" として表されます。
すべて問題ありませんが、コードをウェブホストにアップロードすると、「Caf%C3%A9」に変換されます。ページ内では「Café」として表示されます。
デコードにはUTF-8を使用しています。私のウェブホストは iconv.input_encoding ISO-8859-1 を使用しています。
ここに問題があると思います。これを修正する最良の方法は何ですか?UTF-8 を ISO-8859-1 に変更しますか、それとも変換機能がありますか?
編集 私はUTF8メタタグを持っています
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
encodeURIComponent も使用しようとしましたが、同じ結果が得られます
"&place=" + encodeURIComponent(placename);
編集:コードを追加
これはコードで、Web とはローカルで異なる動作をします。コードは Google Maps API を使用します。
var lat = place.geometry.location.lat();
var lng = place.geometry.location.lng();
var placename = place.name;
var placerating = place.rating;
if (placerating == undefined) {
placerating = 0;
}
var placeaddress = place.vicinity;
var website = place.website;
var url = place.url;
var day = new Date();
var m = day.getMonth() + 1;
var d = day.getDate();
var y = day.getFullYear();
var formUrl = "myform.php?d=" + d + "&m=" + m + "&y=" + y + "&lat=" + lat + "&lng=" + lng + "&place=" + encodeURIComponent(placename);
(場所名)を警告すると、両方の環境で同じ結果が得られることに注意してください。つまり「カフェ」
解決
私のウェブホストは、ページに ISO-8859-1 の使用を強制する別のエンコーディングを使用していました。私はhtmlメタタグを使用しましたが。
次の PHP ヘッダーをページの先頭に追加します
header("Content-type: text/html; charset=utf-8");
ティア、コーエン