以UTF-8方式编码的GET, 的数据.如何转为GB2312

ayu11789 2004-06-14 08:57:20
取出来后看起来是乱码, 请问如何转为GB2312


多谢. 100分相送.
...全文
417 点赞 收藏 27
写回复
27 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
darker 2004-06-17
如果你是取GOOGLE的UTF-8的编码,以下这个JS函数你就可以用了:

比如:"软件"为%E8%BD%AF%E4%BB%B6

function utf8CodeToChineseChar(strUtf8)
{
var iCode, iCode1, iCode2;
iCode = parseInt("0x" + strUtf8.substr(1, 2));
iCode1 = parseInt("0x" + strUtf8.substr(4, 2));
iCode2 = parseInt("0x" + strUtf8.substr(7, 2));

return String.fromCharCode(((iCode & 0x0F) << 12) |
((iCode1 & 0x3F) << 6) |
(iCode2 & 0x3F));
}
回复
darker 2004-06-17
不好意思,昨天忘了,楼主是不是要解决WAP程序中表单提交的问题,如果是,这种方法也是不可行的,我为这个问题头疼了好久~
回复
darker 2004-06-17
Function Utf22GB(strUtf)
'将单个的utf字符串,转换成gb汉字,
'输入参数:%E6%B5%8B手机提交上来的是这种形式的编码.若要转短信杂志 的更好转了.
'输出结果:测

dim iCode,iCode1,iCode2

iCode=Mid(strUtf,2,2)
iCode1=Mid(strUtf,5,2)
iCode2=Mid(strUtf,8,2)

iCode="&h"&iCode
iCode1="&h"&iCode1
iCode2="&h"&iCode2

iiCode=(iCode And &h0f)
iiCode1=(iCOde1 And &h3f)
iiCode2=(iCode2 And &h3f)

Utf22GB=ChrW((iiCode*2^12) OR (iiCode1*2^6) OR iiCode2) '编码转换算法程序,测试通过

End Function
回复
ayu11789 2004-06-17
怎么就没人理了?
回复
hot.hot 2004-06-17
用JS最简单只要一句就可以搞定:弹出“中国人aa"
alert(decodeURIComponent("%E4%B8%AD%E5%9B%BD%E4%BA%BAaa"));

给分别忘了
回复
ayu11789 2004-06-16
看来是没人会了...CSDN没个高手?
回复
ayu11789 2004-06-16
lemontree197977(热茶): 我是接受从www.google.com来的数据。 所以我不可能去设置他的FORM, 只能想办法把他那里是UTF-8的换为GB2312, 或是把以UTF-8方式来的表单以GB2312的编码读出来
这就是一个从www.google.com来的连接.
http://www.google.com/search?q=%E7%BD%91%E7%AB%99%E5%BF%AB%E8%BD%A6&ie=UTF-8&hl=zh-CN&lr=lang_zh-CN

从这里可以看到, 有三个参数,q就是搜索的关键字.直接用:request.querystring("q")读出来就是乱码.
我就是想,如果让这里读出来不是乱码.

楼上的方法不行, 执行出错,提示语句未结束.
回复
aoplo 2004-06-16
request.getquerry("business").trim().getBytes("iso8859_1"),"GB2312");
是不是这样!
回复
野马 2004-06-16
不明白,我接受的get的汉字不用转啊???
回复
ayu11789 2004-06-16
darker(darker)
你把差的这个函数贴上来好吗?
回复
lemontree197977 2004-06-16
你可以试试下面谈及的属性
########
这是form的特性定义,可以指定参数作为何种编码传送
accept-charset = cdata
这 个 特 定 指 定 了 一 个 可 以 被 服 务 器 处 理 这 个 表 单 的 输 入数 据 时 接 受 的 字符编码 列表. 这 个 值 是 在 [RFC2045] 中 的 定 义 的 用 空 格 和/或 逗 号 分 列 的 "character" 列 表. 服 务 器必 须 把 这 个 列 表 解 释 为 独 占 列 表, 就 是 说 服 务 器 必 能 够 接受 每 个 条 目 收 到 时 的 单 独 字 符 编 码.
回复
BlueDestiny 2004-06-16
楼上老大说的。xmlhttp
回复
孟子E章 2004-06-16
http://www.knowsky.com/list.asp?id=2702
回复
孟子E章 2004-06-16
http://dotnet.aspx.cc/ShowDetail.aspx?id=6DDF3C72-F29C-43D3-C2A8-2444CF98FBED
回复
ayu11789 2004-06-16
楼上的. 你这里差了一个

utf22gb() 函数..请把它贴上了..
回复
darker 2004-06-16
Function Utf2GB(strUtf) '将UTF-8转换成GB

'将server.urlencode之后的字符串转换成GB字符串
'输入:%20%E6%B5%8B%20dgfkjdgkdg%E8%AF%95hdskfjdfgjdf
'输出:" 测 dgfkjdgkdg试hdskfjdfgjdf"

dim bstr,loc_e,strTemp
utf999=""
Utf2GB=""
bstr=""
loc_e=0
if (strUtf="") then
Utf2GB=""
exit function
end if

loc_e=instr(1,strUtf,"%E")
if loc_e=0 then
utf2gb=replace(strutf,"+"," ")
utf2gb=replace(strutf,"%20"," ")
utf2gb=replace(strutf,"%2C",",")
utf2gb=replace(strutf,"%2E",".")
utf2gb=replace(strutf,"%3F","?")
utf2gb=replace(strutf,"%21","!")
utf2gb=replace(strutf,"%3A",":")
utf2gb=replace(strutf,"%3B",";")
utf2gb=replace(strutf,"%2A","*")
utf2gb=replace(strutf,"%28","(")
utf2gb=replace(strutf,"%29",")")
utf2gb=replace(strutf,"%40","@")
utf2gb=replace(strutf,"%25","%")
utf2gb=replace(strutf,"%C2","$")
utf2gb=replace(strutf,"%3D","=")
exit function
end if

'找到一个%E,可以进而循环提取
loc_last_e=1
do while loc_e>0
strtemp=strtemp & mid(strutf,loc_last_e,loc_e-loc_last_e)
utf999=mid(strutf,loc_e,9)
strtemp= strtemp & utf22gb(utf999)
loc_last_e=loc_e+9
loc_e=instr(loc_last_e,strUtf,"%E")
loop
utf2gb= strtemp & mid(strutf,loc_last_e,len(strutf)-loc_last_e+1)
utf2gb=replace(utf2gb,"%20"," ")
End Function
回复
whtech 2004-06-16
mark
回复
AngelYe 2004-06-15
同僚~ 不能解决 ~ 等待高手
回复
ayu11789 2004-06-15
没有人会吗? 我把分给谁呀?
回复
ayu11789 2004-06-15
顶起来, 为什么没有人会吗?
回复
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-06-14 08:57
社区公告
暂无公告