编程论坛
注册
登录
编程论坛
→
jQuery论坛
ASP+Ajax问题求救
hugeannex
发布于 2008-09-24 23:22, 5285 次点击
在ASP中,
怎么用Ajax的汉字不是乱码地存进access中?
12 回复
#2
hugeannex
2008-10-05 01:01
嘿嘿,进来才发现是我问的问题,都没人理。
现在只能解决IE的……
#3
sexy22
2008-10-05 10:32
把意思说明白点。。。。
#4
quanercao
2008-10-05 23:53
ajax乱码太正常了。。对每个数据传递过程进行各个击破。。。
#5
hugeannex
2008-10-10 08:46
[bo][un]quanercao[/un] 在 2008-10-5 23:53 的发言:[/bo]
ajax乱码太正常了。。对每个数据传递过程进行各个击破。。。
说的容易,做起来你就知道办不到了。ASP+ajax真的不太适合,在IE中还可以,在火狐中汉字的字数是单数就不行了,后面那个字肯定是乱码。(意思是在火狐中,中文只能传偶数长度的字,奇数的后面一个字就是乱码,我试了很久都没解决,前台后台都弄过)
#6
SkyGull
2008-10-10 09:32
转码回来就可以了
ajax过去的编码是utf8的.
你建个函数转成gbk的.再存入就可以了
#7
hugeannex
2008-10-10 12:31
[bo][un]SkyGull[/un] 在 2008-10-10 09:32 的发言:[/bo]
转码回来就可以了
ajax过去的编码是utf8的.
你建个函数转成gbk的.再存入就可以了
愿闻其详。
理论上都是这么说,希望楼上的能给点实用的代码看看。
#8
SkyGull
2008-10-14 11:18
php有 iconv 函数...asp不晓得
#9
SkyGull
2008-10-14 11:21
程序代码:
Function U2UTF8(Byval a_iNum) 'utf8转gbk
Dim sResult,sUTF8
Dim iTemp,iHexNum,i
iHexNum = Trim(a_iNum)
If iHexNum = "" Then
Exit Function
End If
sResult = ""
If (iHexNum < 128) Then
sResult = sResult & iHexNum
ElseIf (iHexNum < 2048) Then
sResult = ChrB(&H80 + (iHexNum And &H3F))
iHexNum = iHexNum \ &H40
sResult = ChrB(&HC0 + (iHexNum And &H1F)) & sResult
ElseIf (iHexNum < 65536) Then
sResult = ChrB(&H80 + (iHexNum And &H3F))
iHexNum = iHexNum \ &H40
sResult = ChrB(&H80 + (iHexNum And &H3F)) & sResult
iHexNum = iHexNum \ &H40
sResult = ChrB(&HE0 + (iHexNum And &HF)) & sResult
End If
U2UTF8 = sResult
End Function
Function GB2UTF(Byval a_sStr) 'gbk转utf8
Dim sGB,sResult,sTemp
Dim iLen,iUnicode,iTemp,i
sGB = Trim(a_sStr)
iLen = Len(sGB)
For i = 1 To iLen
sTemp = Mid(sGB,i,1)
iTemp = Asc(sTemp)
If (iTemp>127 OR iTemp<0) Then
iUnicode = AscW(sTemp)
If iUnicode<0 Then
iUnicode = iUnicode + 65536
End If
Else
iUnicode = iTemp
End If
sResult = sResult & U2UTF8(iUnicode)
Next
GB2UTF = sResult
End Function
试试这个吧
#10
hugeannex
2008-10-21 12:26
谢谢,有空再试试.
#11
sunfishy
2008-11-26 20:12
实践研究:
asp乱码问题:
ajax.js
xmlhttp.send("id="+escape(id)) //注意此处要加上escape
a.asp
response.charset="gb2312"
===
两步骤同时需要.
1