我正在制定一个学校的实时时间表。现在当我测试它时,我只在 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 关注
- 177 浏览
添加回答
举报
0/150
提交
取消
