0

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);
4

3 に答える 3

1

タグ Meta を使用できます。

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
于 2013-05-08T13:00:09.873 に答える
0

問題は、実際にはPHPが応答をファイルに書き込むことでした。文字を台無しにせずにコンテンツを書き込むために、コンテンツの前に UTF-8 署名を配置する必要がありました

file_put_contents('contents.txt', "\xEF\xBB\xBF".$_POST['html']);
于 2013-05-09T09:32:06.563 に答える