Asp中使用JQuery的AJAX提交中文亂碼解決方法
來源:易賢網(wǎng) 閱讀:1556 次 日期:2014-08-09 08:22:04
溫馨提示:易賢網(wǎng)小編為您整理了“Asp中使用JQuery的AJAX提交中文亂碼解決方法”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了Asp中使用JQuery的AJAX提交中文亂碼解決方法,使用Asp中的unescape() 和escape() 函數(shù)即可解決亂碼問題,需要的朋友可以參考下

客戶端頁:client.html

代碼如下:

<script>

//jquery的post

$.post

(

'server.asp',

{

Act:'DoSubmit',

UserName:escape('腳本之家'),//進(jìn)行編碼

WebSite:'www.jb51.net'

},

function(data)

{

alert(unescape(data));//對返回?cái)?shù)據(jù)進(jìn)行解碼

}

);

</script>

服務(wù)器端頁:server.asp

代碼如下:

< %

Response.Charset="gb2312"

Dim UserName,WebSite

If Request.Form("Act")="DoSubmit" Then

UserName=Request.Form("UserName")

WebSite =Request.Form("WebSite")

'在服務(wù)器端解碼

UserName=VbsUnEscape(UserName)//解碼

'處理數(shù)據(jù)

'---省略數(shù)據(jù)處理部分

'數(shù)據(jù)處理后輸出,先用VbsEscape()編碼

Response.Write VbsEscape(UserName)

End If

%>

< %

'與javascript中的escape()等效

Function VbsEscape(str)

dim i,s,c,a

s=""

For i=1 to Len(str)

c=Mid(str,i,1)

a=ASCW(c)

If (a>=48 and a< =57) or (a>=65 and a< =90) or (a>=97 and a< =122) Then

s = s & c

ElseIf InStr("@*_+-./",c)>0 Then

s = s & c

ElseIf a>0 and a<16 Then

s = s & "%0" & Hex(a)

ElseIf a>=16 and a<256 Then

s = s & "%" & Hex(a)

Else

s = s & "%u" & Hex(a)

End If

Next

VbsEscape=s

End Function

'與javascript中的unescape()等效

Function VbsUnEscape(str)

Dim x

x=InStr(str,"%")

Do While x>0

VbsUnEscape=VbsUnEscape&Mid(str,1,x-1)

If LCase(Mid(str,x+1,1))="u" Then

VbsUnEscape=VbsUnEscape&ChrW(CLng("&H"&Mid(str,x+2,4)))

str=Mid(str,x+6)

Else

VbsUnEscape=VbsUnEscape&Chr(CLng("&H"&Mid(str,x+1,2)))

str=Mid(str,x+3)

End If

x=InStr(str,"%")

Loop

VbsUnEscape=VbsUnEscape&str

End Function

%>

在javascript 中escape() 函數(shù)可對字符串進(jìn)行編碼,這樣就可以在所有的計(jì)算機(jī)上讀取該字符串。

可以使用 unescape() 對 escape() 編碼的字符串進(jìn)行解碼。

其實(shí)Asp中這兩個函數(shù)也是起作用的,居然很多asp網(wǎng)站上沒有進(jìn)行介紹。

要不然只能像上面那樣寫函數(shù)進(jìn)行解碼編碼了。復(fù)雜且性能不好。

上面的服務(wù)器端頁:server.asp可以寫成:

Asp中的unescape() 與 escape() 函數(shù)

代碼如下:

< %

Response.Charset="gb2312"

Dim UserName,WebSite

If Request.Form("Act")="DoSubmit" Then

UserName=Request.Form("UserName")

WebSite =Request.Form("WebSite")

'在服務(wù)器端解碼

UserName=UnEscape(UserName)//解碼

'處理數(shù)據(jù)

'---省略數(shù)據(jù)處理部分

'數(shù)據(jù)處理后輸出,先用VbsEscape()編碼

Response.Write Escape(UserName)

End If

%>

這樣就簡單多了

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:Asp中使用JQuery的AJAX提交中文亂碼解決方法
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)