+ -
当前位置:首页 → 问答吧 → ASP接收GET参数(utf-8格式),转为GB2312时字符丢失

ASP接收GET参数(utf-8格式),转为GB2312时字符丢失

时间:2011-11-04

来源:互联网

在与客户服务器进行通迅的时候,客户的服务器采用HTTP方式向我们的固定地址传送数据,如http://www.mypage.com?para1=aaa&para2=bbb 这样的形式向我们的页面传送数据,再由我们页面保存参数。
客户的服务器采用的是utf-8的编码进行传送,而我们的页面是GB2312的,我用以下的方法对接收的参数进行转码,但有时发现,参数部分内容丢失
VBScript code


<%
'http://www.mypage.com 的源码
dim str
str = request("content")

response.write(request("phone"))
response.write("<br>")
response.write(UTF2GB(str))
response.write("<br>")
response.write(now())
response.write("<br>")

response.write("0")

'转码函数
Function UTF2GB(s)
    Dim sm
    Set sm = Server.CreateObject("ADODB.Stream")
    With sm
        .Type = 2
        .Mode = 3
        .Open
        .CharSet = "GB2312"
        .WriteText UnEscape(s)
        .Position = 0
        .CharSet = "UTF-8"
        UTF2GB = .ReadText(-1)
        .Close
    End With
    Set sm = Nothing
End Function

%>



比如,服务器在传送“一二三四5六七八九十”的时候,转过来以后,就变成了“一二三?六七八九”;还有如果参数为汉字的话,只能转222个,再多了就没有了;数字和符号没有问题
这是怎么回事啊

作者: huaxialonger   发布时间: 2011-11-04

试试看这个字符转换组件:Chilkat Charset
http://www.chilkatsoft.com/chilkatcharset.asp

作者: hookee   发布时间: 2011-11-04

引用 1 楼 hookee 的回复:
试试看这个字符转换组件:Chilkat Charset
http://www.chilkatsoft.com/chilkatcharset.asp

需要注册DLL吧,那样的话,不行,服务器不允许啊

作者: huaxialonger   发布时间: 2011-11-04

服务器端页面不能换成utf吗?

作者: hookee   发布时间: 2011-11-04

引用 3 楼 hookee 的回复:
服务器端页面不能换成utf吗?

不能啊,必须用GB2312的,不然整个系统会有问题

作者: huaxialonger   发布时间: 2011-11-04

热门下载

更多