注册 登录
编程论坛 jQuery论坛

ASP+Ajax问题求救

hugeannex 发布于 2008-09-24 23:22, 5285 次点击
在ASP中,
怎么用Ajax的汉字不是乱码地存进access中?
12 回复
#2
hugeannex2008-10-05 01:01
嘿嘿,进来才发现是我问的问题,都没人理。
现在只能解决IE的……
#3
sexy222008-10-05 10:32
把意思说明白点。。。。
#4
quanercao2008-10-05 23:53
ajax乱码太正常了。。对每个数据传递过程进行各个击破。。。
#5
hugeannex2008-10-10 08:46
[bo][un]quanercao[/un] 在 2008-10-5 23:53 的发言:[/bo]

ajax乱码太正常了。。对每个数据传递过程进行各个击破。。。


说的容易,做起来你就知道办不到了。ASP+ajax真的不太适合,在IE中还可以,在火狐中汉字的字数是单数就不行了,后面那个字肯定是乱码。(意思是在火狐中,中文只能传偶数长度的字,奇数的后面一个字就是乱码,我试了很久都没解决,前台后台都弄过)
#6
SkyGull2008-10-10 09:32
转码回来就可以了

ajax过去的编码是utf8的.
你建个函数转成gbk的.再存入就可以了
#7
hugeannex2008-10-10 12:31
[bo][un]SkyGull[/un] 在 2008-10-10 09:32 的发言:[/bo]

转码回来就可以了

ajax过去的编码是utf8的.
你建个函数转成gbk的.再存入就可以了


 愿闻其详。
理论上都是这么说,希望楼上的能给点实用的代码看看。
#8
SkyGull2008-10-14 11:18
php有 iconv 函数...asp不晓得
#9
SkyGull2008-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
hugeannex2008-10-21 12:26
谢谢,有空再试试.
#11
sunfishy2008-11-26 20:12
实践研究:
asp乱码问题:

ajax.js

xmlhttp.send("id="+escape(id)) //注意此处要加上escape

a.asp
response.charset="gb2312"

===
两步骤同时需要.
1