Chinaunix首页 | 论坛 | 博客
  • 博客访问: 413525
  • 博文数量: 168
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-09 13:46
文章分类

全部博文(168)

文章存档

2015年(51)

2014年(30)

2013年(87)

我的朋友

分类: C/C++

2015-04-09 14:59:36

 
网络传输?不知道我以前写自动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,现在已经可以正常显示中文了,谢谢!
阅读(6285) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~