サーバーの回答から正しいISO-8859-1文字セットを取得できない理由を理解できません。これは従来のコードの作業であるため、ページ上の文字セットのエンコーディングを変更することはほとんどありませんでした。Jquery:Ajaxのポストとエンコーディング
私はjQueryのコール
$.post("server-side-code", {t:ctext, i:ioff, sid:sessionid},
function(data, status) {
$('#chk').append(data);
});
JavaScriptを使用して作成したテキストエリアの値を掲示するのに使用します:
<form accept-charset='ISO-8859-1' method='post'>
<textarea cols='40' rows='8' id='commento'></textarea><br>
<input type='button' value='invia' id='submit'></form>
が要求を処理するサーバー側のスクリプトはその最上部に宣言しています。
text/html; charset=ISO-8859-1
そう、正直言って、宣言すべきことをエンコードのこれにもかかわらず、アクセント記号付きの文字「àèéìòù」は、HTML要素にサーバーの回答を配置するときに「ÃèéÃÃÃÃÃÃù」と表示されます。
ソースはASCII形式で保存されます。掲載されるように、変数に基本的なHTMLのエンコーディングを持っているために、これを行うにはTryngは解決しません:
ctext = escapeHTML(ctext);
function escapeHTML (str)
{
var div = document.createElement('div');
var text = document.createTextNode(str);
div.appendChild(text);
return div.innerHTML;
};
いくつかのアイデアを?
ありがとうございます!
まあ...これはクレイジーです。信じられない。この問題は、AJAX要求に対する答えを返すサーバー側のページをUTF-8で宣言して解決されています。つまり、ajaxリクエストを作成しているページで使用されている文字セットとは異なる形式のcharsetを宣言します。 – Daniel