XMLHTTP コード化けの解決法 (UTF8、GB2312 エンコードとデコード)_JavaScript スキル

WBOY
リリース: 2016-05-16 18:12:08
オリジナル
1259 人が閲覧しました

データ送信側ではJavaScriptのエスケープ機能を利用して中国語をすべて英語エンコードに変換して保存しておきます(ASPなど他言語の関数を利用してリアルタイムに出力を変換することもできます)。
データ受信側ではJavaScriptのunescape関数を使用して全て英語のエンコーディングに戻します。
Ajax はエンコードに関係なく英語を正常に送信できるので、この方法は簡単に解決できます。

------------------------------------------ ---------- ------------------------------------
これには 2 つの側面があります。 XMLHTTP Post Form を使用するとフォームが文字化けする原因は、Post フォームのデータが中国語で文字化けすること、サーバーの応答が間違った XMLHTTP エンコーディングにより文字化けすることです。つまり、この記事は主に 2 つの問題、つまり中国語コンテンツを正しく投稿する方法と、取得した中国語コンテンツを正しく表示する方法を解決します。
パート I 中国語コンテンツを投稿する
電子投稿フォームがどのように送信されるかを見てみましょう:

コードをコピー コードは次のとおりです。

🎜>if strA = "submit1=Submit&text1=scsdfsd"; を次のように置き換えます。
strA = "submit1=Submit&text1=English";
送信された内容がまったく正しくないことがわかります。Request.Form(" ASP の Text1" ) は値をまったく取得できません。 Request.BinaryRead を使用して Post コンテンツを HTML フォームに書き出して調べてみましたが、問題が見つかりました。フォームは送信時にエンコードする必要があり、エンコードされた中国語の文字は %??%? に似たエスケープ文字です。 ?. たとえば、「中国語」は次のようにエンコードされます。あはは、私が愚かだと責めてください。CONTENT-TYPE には application/x-www-form-urlencoded と明記されています。もちろん、urlencoded がその見た目です。この場合、何をすべきかもわかります。変換を自分で行います。コードは次のとおりです:



コードをコピー
コードは次のとおりです。

-----------------------------------------------------以上转ダウンロード----------------------------
http://www.dhtmlx.com

開始プロフェッショナルな Ajax
今日の Web アプリケーションの構築
最近、DHTMLX のツリー、中国語の xml が使用されていますが、システム全体は GB2312 であり、DHTMLX のみが UTF8 をサポートしています。 🎜>
用法もまた単純であり、DHTMLX プレゼンテーション サイト用の代コードです。

var obj=document.getElementById(oid);
//ツリーの最初のレベルをロードします
tree.loadXML("tree.asp?id=0");


tree.asp コードは gb2312 であり、システム全体と一致しており、response.write は xml を返します。
システム全体のコードは変更されておらず、DHTMLX 上の法のみが適用されています。


は、Microsoft.XMLHTTP の原因により、上記のファイルをさらに深層に挿入します。
のように、完全に解決され、次のように変更されます。 1. VBScript の中国語转换の関数を追加



复制代


代码如下:


<スクリプト言語="VBScript">
'处理中文
function bin2str(bin)
dim tmp,usr,i tmp="" for i=1 to LenB(bin)-1 ustr=AscB (MidB(bin,i,1)) if ustr>127 then i=i 1 tmp=tmp&chr(ustr*256 AscB(MidB(bin,i,1)))
else
tmp=tmp&chr(ustr)
end if
next
bin2str=tmp
end function



2.dhtmlxcommon.js の getXMLTopNode 处
var xmlString = this.xmlDoc.responseText;
変更は
var xmlString = bin2str(this.xmlDoc.responseBody);//js で直接実行できる VBScript スクリプト

3. 同時に出力される xml の asp ファイルを追加
<%response.ContentType="アプリケーション/xml"%>

もちろん、ファイルも gb2312 形式で保存されます。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!