网络传输?不知道我以前写自动HTTP POST数据的方法对你有没有帮助:
说明:strName, strID, strContact, strPhont都是Unicode的汉字或数字字符串;
Post出去前要把它转化成类似于下面的Base64编码形式:
http://www.baidu.com/s?wd=%D6%D0%B9%FA&cl=3这样的形式,中间的"wd=%D6%D0%B9%FA"实际上就是"wd=中国".
下面的代码中关键的是红色的部分:QUrl::toPercentEncoding()
而里面的Utf8_To_GB()函数,则是你上面提到的我以前发帖子说的GB和UTF8汉字编码互相转换的例子。接收到后解码,则使用下面的函数
QString QUrl::fromPercentEncoding ( const QByteArray & input )
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()函数