我正在制定一個學校的實時時間表。現在當我測試它時,我只在 internet explorer 中得到一個錯誤。我使用 ie v.11 和字符集 UTF-8當我將當前學生的數據發送到 php 腳本時,有一些字符,如 ?,?,ü 會解析為 ?。但僅在 InternetExplorer 中。如果我發送這樣的 URL:http://adopraesenz.ipwin.ch/data/students.php?q=getWirth Nalia;3:Kürzel;0;0;4;0;0;0;并希望像這樣在 php 中接收它們$q = $_REQUEST["q"];echo $q;我得到這個輸出:getWirth Nalia;3:K?rzel;0;0;4;0;0;0;我正在發送這樣的數據:function getData(str) { var requestURL = "http://adopraesenz.ipwin.ch/data/students.php?q=" +str; var request = new XMLHttpRequest(); request.onreadystatechange = function() { if(this.readyState === 4 && this.status === 200){ loadJson(request); } }; request.open("GET", requestURL, true); request.send(); }有關更多代碼或信息,請詢問。
1 回答

繁花不似錦
TA貢獻1851條經驗 獲得超4個贊
在 PHP中urlencode,urldecode如果您想通過 GET 請求發送數據,您應該始終使用。首先對您的參數進行編碼,并在收到后再次對其進行解碼。大多數網絡服務器會為您進行解碼,因此您大部分時間只需調用編碼代碼。還要檢查您的表單是否在 html 和 http-header 中使用相同的字符集(首選 utf-8)
來自官方 php 文檔的示例
編碼
<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
解碼(網絡服務器大部分時間都會為您執行此操作)
<?php
$query = "my=apples&are=green+and+red";
foreach (explode('&', $query) as $chunk) {
$param = explode("=", $chunk);
if ($param) {
printf("Value for parameter \"%s\" is \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));
}
}
一個更簡單的解決方案是使用 post 請求而不是 get,這是發送 json 數據的首選方式。
- 1 回答
- 0 關注
- 159 瀏覽
添加回答
舉報
0/150
提交
取消