我在使用AJAX发送整页源时遇到了麻烦。我尝试使用escape()
,encodeURI()
,encodeURIComponent()
转义内容 - 所有这些内容都无法发送utf8字符。
我的代码是:
var http = new XMLHttpRequest();
var send = params='html=' + encodeURIComponent(document.documentElement.outerHTML).replace('+',' ');
http.open('POST','submitsource.php',true);
http.setRequestHeader('Content-type','application/x-www-form-urlencoded; charset=UTF-8');
http.onreadystatechange=function(){if(http.readyState==4&&http.status==200){
alert('ok!');
}};
http.send(params);
答案 0 :(得分:1)
您可以使用标签Meta:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
答案 1 :(得分:0)
将您的内容类型设置为“text / html”,并在服务器上将整个帖子数据读取为html
答案 2 :(得分:0)
问题实际上是PHP将响应写入文件。我不得不在我的内容面前放置UTF-8签名,以便在不弄乱角色的情况下进行编写
file_put_contents('contents.txt', "\xEF\xBB\xBF".$_POST['html']);