jQuery ajax/响应后编码
我对通过ajax加载的json编码信息有一个问题 PHP代码(test.PHP): 控制台中的结果如下所示:jQuery ajax/响应后编码,jquery,encoding,json,Jquery,Encoding,Json,我对通过ajax加载的json编码信息有一个问题 PHP代码(test.PHP): 控制台中的结果如下所示: Productmanager m / f 及 这两个文件都是UTF-8编码的 我真的不知道为什么以及如何将它转换回可读字符串。 你可能知道这是怎么发生的 我在第一次尝试时没有找到合适的解决方案,只是搜索和替换方法。您能试试这个吗 $(document).ready(function() { $.ajax({
Productmanager m / f
及
这两个文件都是UTF-8编码的
我真的不知道为什么以及如何将它转换回可读字符串。
你可能知道这是怎么发生的
我在第一次尝试时没有找到合适的解决方案,只是搜索和替换方法。您能试试这个吗
$(document).ready(function() {
$.ajax({
type: "POST",
url: "test.php",
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
dataType: 'json',
success: function(data) {
var response = $.parseJSON(data);
console.log(response.first);
console.log(response.second);
}
});
});
您可以使用“contentType”为ajax请求设置字符编码
在php方面,您的代码必须如下所示:
<?php
$val1 = 'Productmanager m / f';
$val2 = 'test';
$arr = array('first' => $val1, 'second' => $val2);
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
?>
重要提示:JSON_UNESCAPED_UNICODE适用于PHP5.4.0 您可以在您的
test.php中尝试这个
<?php
$val1 = 'Productmanager m / f';
$val2 = 'test';
$arr = array('first' => $val1, 'second' => $val2);
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
?>
添加正确的PHP头并解码字符串:
<?php
header("Content-type: application/json");
$val1 = "Productmanager m / f";
$val2 = "test";
$arr = array("first" => $val1, "second" => $val2);
echo json_encode($arr);
?>
<script>
$(document).ready(function() {
$.post("test.php", function(data){
var response = $.parseJSON(data);
console.log(htmlDecode(response.first));
console.log(response.second);
}
});
function htmlEncode(value){
return $('<div/>').text(value).html();
}
function htmlDecode(value){
return $('<div/>').html(value).text();
}
</script>
$(文档).ready(函数(){
$.post(“test.php”,函数(数据){
var响应=$.parseJSON(数据);
log(htmlDecode(response.first));
console.log(response.second);
}
});
函数htmlEncode(值){
返回$('').text(value.html();
}
函数htmlDecode(值){
返回$('').html(value.text();
}
以一个空响应结束:-/PHP 5.4.0版应该可以使用JSON_UNESCAPED_UNICODE选项,所以您可以试着运行您的test.PHP文件,看看它给出了什么输出。好的,然后我必须删除“var response=$.parseJSON(数据);”结果是samei尝试此操作,但必须删除$.parseJSON,因为响应已被解析。结果是相同的。我的Web空间在更新后使用PHP5.3.10运行良好!
<?php
$val1 = 'Productmanager m / f';
$val2 = 'test';
$arr = array('first' => $val1, 'second' => $val2);
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
?>
<?php
$val1 = 'Productmanager m / f';
$val2 = 'test';
$arr = array('first' => $val1, 'second' => $val2);
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
?>
<?php
header("Content-type: application/json");
$val1 = "Productmanager m / f";
$val2 = "test";
$arr = array("first" => $val1, "second" => $val2);
echo json_encode($arr);
?>
<script>
$(document).ready(function() {
$.post("test.php", function(data){
var response = $.parseJSON(data);
console.log(htmlDecode(response.first));
console.log(response.second);
}
});
function htmlEncode(value){
return $('<div/>').text(value).html();
}
function htmlDecode(value){
return $('<div/>').html(value).text();
}
</script>