• 7370阅读
  • 2回复

QURL中的要写入中文怎么处理. [复制链接]

上一主题 下一主题
离线songzhao831
 

只看楼主 倒序阅读 楼主  发表于: 2014-06-24
QString url="http://ums.zj165.com:8888/sms/Api/Send.do?SpCode=用户您好187
Qurl(url) 这样好像不行,
服务器要求GB2312的编码,  有什么办法可以转的?
离线toby520

只看该作者 1楼 发表于: 2014-06-24
不是把,一般服务器都是utf8编码 你们服务器真奇葩,看下转码的那些类方法吧
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线songzhao831

只看该作者 2楼 发表于: 2014-06-26
已经搞定, 给写下总结, 希望能帮到别人.

很多短信SP厂商都是要求是GB2312编码的中文. 如果你要发短信的话, 你传过去的URL里的中文部分必须是GB2312的. 但QT中, QString是unicode编码. 所以不能直接用QString来构造QURL.

解决办法是. 自己先把中文部分进行percentEncodeing. 再把url连接起来, 代码不在身边. 大概是这么做:
Codec::fromName("GB2312").
bytearrary byte = codec->fromunicode("你要发的中文部分, 记住只是中文部分").
byte=byte.percentEncodeing()  //转成带百分号的已经编码的url格式.
reallurl = url+byte;
Qurl=url.fromEncoded(reallurl) //用我们已经编码过的url. 不让qurl再编码.
Qnetworkreplay(qurl)//传送即可.

有什么问题请给我留言或消息.
快速回复
限100 字节
 
上一个 下一个