のテキストにヘブライ文字が含まれていると、このコードが台無しになるように見えるXMLHttpRequest
ので、問題を示すために小さな例を作成しました。
小さなコード例では、ページをロードしてから、div のコンテンツをサーバーから取得したコンテンツに置き換えます。同じ Web ページを呼び出すため、同じコンテンツに置き換える必要があります。
div 内のボタンに英語の文字が含まれている場合、コードは正常に機能しますが、文字が ASCII 127 を超えている場合、ボタンがねじ込まれます。
いくつかのテストを行ったところ、ファイルを Unicode として保存すると問題なく動作することがわかりました...問題は、このファイルを Unicode として保存できないことです。
- ファイルのサイズが 2 倍になります
- そのhtmlファイルにデータの一部を書き込むハードウェアは、ASCIIで書き込みます
小さな例は、それ自体をロードするだけです:
<HTML><HEAD><TITLE>Test</TITLE>
</HEAD>
<BODY onload="readPage()">
<Div id='Hello'>
<Button>שלום</Button>
</Div>
<Script>
var xmlHttp;
function readPage()
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
var url="/xampp/2.html?dummy=" + new Date().getTime();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url, true);
xmlHttp.setRequestHeader("Content-Type", "text/plain;charset=ISO-8859-1");
xmlHttp.setRequestHeader("Accept-Charset", "ISO-8859-1");
xmlHttp.send(null);
}
function stateChanged()
{
if (xmlHttp.readyState==4)
{
var x = "";
//alert(xmlHttp.responseXML);
//alert(xmlHttp.responseText);
if (xmlHttp.responseText.match(/<Div id='Hello'>([\s\S]*?)<\/Div>/i))
{
x = xmlHttp.responseText.match(/<Div id='Hello'>([\s\S]*?)<\/Div>/i)[1];
//x = x.replace(/"/g,'');
var pdata= document.all ? document.all["Hello"] :
document.getElementById("Hello");
alert(pdata.innerHTML);
alert(x);
pdata.innerHTML=x;
alert(pdata.innerHTML);
}
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
</Script>
</BODY></HTML>
文字セットとコンテンツ タイプを変更しようとしましたが、うまくいきません。
私は何を間違っていますか?
(ところで、私は何も使用できませjQuery
ん)。
ありがとう。