查看完整版本: [-- Qt5发送http get请求,服务端接收中文乱码 --]

QTCN开发网 -> Qt中文处理 -> Qt5发送http get请求,服务端接收中文乱码 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

孺儒 2017-01-04 12:06

Qt5发送http get请求,服务端接收中文乱码

代码如下:
void HttpTest::testGet(){

       QNetworkAccessManager* manager = new QNetworkAccessManager(this);
       QNetworkRequest request;
       request.setUrl(QUrl("http://127.0.0.1:5678/zzjfnew/test.jsp?xmlData=<DATA><SBBH>10000001</SBBH><PPZH>测试</PPZH><FLAG>1</FLAG>      </DATA>"));
       QNetworkReply* reply = manager->get(request);
  }
在服务端接收到的数据如下:  “xmlData:<DATA><SBBH>10000001</SBBH><PPZH>娴??</PPZH><FLAG>1</FLAG></DATA>”,服务端用的是GBK编码。在程序里试过各种 qt解决中文乱码的方法都不行,跪求解决方法……

圣域天子 2017-01-04 12:43
  1. namespace TIANCHI
    {
    static QTextCodec* tianchi_gbkCodec = QTextCodec::codecForName("GBK");
    }
    QString GbkToUtf8(const QByteArray& gbkString)
    {
        return TIANCHI::tianchi_gbkCodec->toUnicode(gbkString);
    }

    QByteArray Utf8ToGbk(const QString& utf8String)
    {
        return TIANCHI::tianchi_gbkCodec->fromUnicode(utf8String);
    }


孺儒 2017-01-04 13:30
圣域天子:namespace TIANCHI
{
static QTextCodec* tianchi_gbkCodec = QTextCodec::codecForName("GBK");
}
QString GbkToUtf8(const QByteArray& gbkString)
....... (2017-01-04 12:43) 

谢谢您的解答! 不过还是乱码……
Utf8ToGbk 后服务端收到的是:“xmlData:<DATA><SBBH>10000001</SBBH><PPZH>锟斤拷锟斤拷</PPZH><FLAG>1</FLAG></DATA>”
GbkToUtf8后服务端收到的是:“xmlData:<DATA><SBBH>10000001</SBBH><PPZH>濞村???/PPZH><FLAG>1</FLAG></DATA>”
还望再施以援手,谢谢!

圣域天子 2017-01-04 13:42
孺儒:谢谢您的解答! 不过还是乱码……
Utf8ToGbk 后服务端收到的是:“xmlData:<DATA><SBBH>10000001</SBBH><PPZH>锟斤拷锟斤拷</PPZH><FLAG>1</FLAG></DATA>”
GbkToUtf8后服务端收到的是:“xmlData:<DATA><SBBH>1000 .. (2017-01-04 13:30) 

你的Qt代码可能不是UTF8?中间传输过程的编码没有规范。
服务端是Qt吗?

孺儒 2017-01-04 13:54
圣域天子:
你的Qt代码可能不是UTF8?中间传输过程的编码没有规范。
服务端是Qt吗?

[attachment=16297][attachment=16297]

是在这里设置吗?
而且我也在main()函数里加了
QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForLocale(codec);服务端用Java写的

圣域天子 2017-01-04 14:08
你在Qt发送前先转成GBK的
应该就可以了,我以前也搞过跟java/gbk的通讯,很EASY就可以转的
多试几次吧

孺儒 2017-01-04 17:48
圣域天子:你在Qt发送前先转成GBK的
应该就可以了,我以前也搞过跟java/gbk的通讯,很EASY就可以转的
多试几次吧 (2017-01-04 14:08) 

就是会不会是服务端有问题呢?发现把链接直接用浏览器打开时,只有IE浏览器中文不乱码,其他浏览器,如谷歌、360等也是乱码,这是什么原因呢?


查看完整版本: [-- Qt5发送http get请求,服务端接收中文乱码 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled