首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 表单提交的转码问题GB2312转UTF8 [已结贴,结贴人:aas5272]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-20 23:10:49 楼主
    问题请教,立刻结贴送分。

    环境:ASP写的程序。
    我有一个网页编码是GB2312的HTML网页,这个网页的表单提交给一个asp页面,这个页面的编码是CODEPAGE="65001"。

    问题:我如何在ASP页面中正确显示HTML网页表单提交的中文内容。同时ASP页面转码,即ASP页面本身的文字也不乱。


    简要就是:如何将编码GB2312的中文表单递交后,获得的结果转换成UTF8编码的中文。

    不知道说清楚了没有。
    80  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 00:28:421楼 得分:0
    转asp版

    那个猪头说回复内容太短了???
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 00:47:332楼 得分:0
    怎么转啊?请告知。
    请告知。
    请告知。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 01:02:433楼 得分:80
    Function U2UTF8(Byval a_iNum)
        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)
        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

    '调用方法
    Response.BinaryWrite(GB2UTF("中国人"))

    这是测试代码
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 09:41:194楼 得分:0
    http://www.blogjava.net/errorfun/archive/2006/12/09/86584.html
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 11:01:025楼 得分:0
    藏*无限兄弟,好像有点问题,我测试了一下。我用GB2312的网页提交表单,用UTF8的ASP网页接收数据处理。这个时候request都收不到中文。

    if request("username") <>"" then

    这个判断得到是空??
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 11:11:026楼 得分:0
    得 不到值那是你传递的问题
    不是这个程序的问题
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 12:41:257楼 得分:0
    我测试了。如果username input填写的是数字就可以request到,如果是中文就拿不到。我也看看我的程序。

    还有个地方,

    utf8

    strUsername = GB2UTF(request("username"))

    然后
    直接用来数据库中查询。好像不行。是不是差了什么?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 12:55:438楼 得分:0
    数据库是什么编码?

    回复内容太短了!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 13:10:509楼 得分:0
    UTF8的编码。

    这个可以直接给变量吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 13:15:5010楼 得分:0
    你数据库是UTF8编码?
    显示页面是GB2312?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 13:16:2111楼 得分:0
    数据库是UTF8编码?
    显示页面和提交是GB2312?
    接受页面是UTF8编码?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 13:16:4112楼 得分:0
    你最好自己把这些关系理清楚
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 13:17:3013楼 得分:0
    所有编码要一致才会正常显示
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-21 14:05:5014楼 得分:0
    是,也是很无奈,主要是帮他们把两个开发的东西整合在一起。论坛是UTF8的编码,网页发布系统以前是GB2312,然后要
    共用论坛会员数据。所以才那么扯。不过还是谢谢你。给予的帮助。分就给你了。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved