急
我在pb9中,利用HTTP POST 向服务器端发送请求,但是发送过去后显示的中文是乱码,请问应该如何来解决
发送英文字母是完全正确的,发送过去后也可以在服务器上查询得到。如它将“中国人民银行”显示为“涓??浜烘??惰?”。
问题点数:50、回复次数:10Top
1 楼lzheng2001(1加1)回复于 2004-12-03 15:35:07 得分 0
能否给些代码看看?Top
2 楼qian_8801ren(阿宝)回复于 2004-12-03 15:47:48 得分 0
OLEObject dom,doc, http
String Http_Name,ServerName
Integer li_rc
any la_response
Http_Name='http://127.0.0.1:8008/online/FOX4Securities'
string ls_filename, named
dom = CREATE OLEObject
li_rc = dom.ConnectToNewObject("MSXML2.DOMDocument")
IF li_rc < 0 THEN
MessageBox("连接MSXML2.DOMDocument COM组件失败", "错误代码:" + String(li_rc))
DESTROY dom
Return
END IF
//将数据组报
ls_filename='<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'&
+'<?FOX FOXHEADER="100" VERSION="100" SECURITY="NONE" LANG="CHS"?>'&
+'<FOX><SIGNONMSGSRQV1><SONRQ><DTCLIENT>2004-12-03 10:12:10</DTCLIENT>'&
+'<CID>0820002651</CID><USERID>001</USERID><USERPASS>123456</USERPASS>'&
+'<GENUSERKEY>Y</GENUSERKEY><APPID>XYZ</APPID><APPVER>100</APPVER>'&
+'</SONRQ></SIGNONMSGSRQV1><SECURITIES_MSGSRQV1><XFERSYNCRQ>'&
+'<TOKEN>120</TOKEN><TOKENONLY>Y</TOKENONLY><XFERTRNRQ>'&
+'<TRNUID>1111111111111111</TRNUID><XFERRQ><XFERINFO>'&
+'<ACCTFROM><ACCTID>368100100100057549</ACCTID></ACCTFROM>'&
+'<ACCTTO INTERBANK="Y" LOCAL="Y"><ACCTID>666010100100000199</ACCTID>'&
+'<NAME>中文</NAME><BANKDESC>china</BANKDESC></ACCTTO>'&
+'<CHEQUENUM>99001118</CHEQUENUM><CURSYM>RMB</CURSYM><TRNAMT>0.01</TRNAMT>'&
+'<PMTMODE>REAL_TIME</PMTMODE><PURPOSE>546456456</PURPOSE><MEMO>6455555555555555555555</MEMO>'&
+'</XFERINFO></XFERRQ></XFERTRNRQ></XFERSYNCRQ></SECURITIES_MSGSRQV1></FOX>'
//组报结束
boolean lb_test
http = CREATE OLEObject
li_rc=http.ConnectToNewObject("Microsoft.XMLHTTP")
IF li_rc < 0 THEN
DESTROY http
MessageBox("错误", &
"Connecting to XMLHTTP Object Failed ,Error: " + String(li_rc))
Return
END IF
dom.loadxml(ls_filename)
http.Open("POST",http_name, true)
http.send(dom.xml)
la_response=http.responseBody
先谢了哦Top
3 楼lzheng2001(1加1)回复于 2004-12-03 15:59:56 得分 10
估计是字符编码问题
注意encoding="UTF-8" 这句及 LANG="CHS"
先试试把encoding="UTF-8"改"Big5"
问题解决就结贴吧Top
4 楼qian_8801ren(阿宝)回复于 2004-12-03 16:54:51 得分 0
还是不行
GBK及GB2312我都试过了,都不行
还是先谢你Top
5 楼mnsiii(水流花谢两无情)回复于 2004-12-04 14:19:45 得分 0
这个问题高难,我学习一下!Top
6 楼qian_8801ren(阿宝)回复于 2004-12-04 16:53:18 得分 0
有哪位帮我搞定,定给高分啊Top
7 楼balloonman2002()回复于 2004-12-04 17:09:38 得分 0
http://search.csdn.net/search.asp?key=http+post+%D6%D0%CE%C4+%C2%D2%C2%EB&class=&size=10&option=advance&x=33&y=13
http://www.google.com/search?hl=zh-CN&ie=GB2312&q=http+post+%D6%D0%CE%C4+%C2%D2%C2%EB&lr=lang_zh-CN
看看吧,对你必有所帮助Top
8 楼lzheng2001(1加1)回复于 2004-12-05 00:01:25 得分 20
1.把这些字符保存成xml文件,然后发送文件
dom.Load("c:\aaa.xml")
http.Open("POST", Http_Name, TRUE)
http.Send(dom.xml)
2.试试不要encoding="UTF-8"
Top
9 楼qian_8801ren(阿宝)回复于 2004-12-17 11:27:58 得分 0
把http.send(dom.xml)改为http.send(dom)就把问题解决 了Top
10 楼zhangdatou(猪头)回复于 2005-01-12 14:26:06 得分 20
那结贴吧 顺便给我几分 哈哈Top




