我对在 Apache 上运行的 javascript 有点陌生,但我有以下问题。
我使用转义使字符串“Café”准备好在使用 javascript 的 url 中使用。
"&place=" + escape(placename);
该字符串被翻译成“Caf%E9”,然后在下一页中表示为“Café”,这是一个php页面。
一切都很好,但是,当我将代码上传到我的虚拟主机时,它被翻译为“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);
编辑:添加代码
这是代码,它在本地的行为与在网络上的行为不同。该代码使用 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");
TIA,科恩