Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2399619
  • 博文数量: 862
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10598
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(862)

文章存档

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: C/C++

2009-07-08 10:13:46

 
网络传输?不知道我以前写自动HTTP POST数据的方法对你有没有帮助:
说明:strName, strID, strContact, strPhont都是Unicode的汉字或数字字符串;
Post出去前要把它转化成类似于下面的Base64编码形式:

这样的形式,中间的"wd=%D6%D0%B9%FA"实际上就是"wd=中国".
下面的代码中关键的是红色的部分:QUrl::toPercentEncoding()
而里面的Utf8_To_GB()函数,则是你上面提到的我以前发帖子说的GB和UTF8汉字编码互相转换的例子。接收到后解码,则使用下面的函数
QString QUrl::fromPercentEncoding ( const QByteArray & input )
Quote:

QString strName = GenName();
    QString strID = GenPID(LineEditName->text());
    QString strContact = GenContact();
    QString strPhone = GenPhone();
             
      QString data = "name=" + QUrl::toPercentEncoding(Utf8_To_GB(strName)) + "&shengfenzhenghao=" + strID + "&content=" + strID + "&phone=" + strPhone + "&idhao=81&website=&email=&button=" + QUrl::toPercentEncoding(Utf8_To_GB(QString::fromLocal8Bit("投票")));


在你的程序中,如果汉字需要GB编码的话,就使用Utf8_To_GB()函数把它转换过来,如果使用的是Unicode的话,不需要使用Utf8_To_GB()函数
 
谢谢,刚刚看过那篇文章,我现在在发送时使用
QTextCodec *codec = QTextCodec::codecForName("utf8");
QByteArray data = codec->fromUnicode(msgContent);
将msgContent转换成QByteArray,在接收时使用
QTextCodec *codec = QTextCodec::codecForName("utf8");
      QString a;
      a = codec->toUnicode(listPart.at(2));
将QByteArray转换成QString,现在已经可以正常显示中文了,谢谢!
阅读(1349) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~