Mensagem soap nao é enviada com codificacao correta
-
Boa noite!
Estou com um pequeno problema!
Estou enviando via socket uma mensagem soap para um servidor soap... A mensagem é enviada corretamente, mas eu tenho que usar o .tolocal8bit() para enviar a mensagem só que o servidor quando recebe a mensagem ele nao reconhece os caracteres especiais corretamente.
Fazendo uma comparação com um programa que envia corretamente o texto sai assim:
"AMPLIA[0xc3][0x87][0xc3][0x83]O DO HGP"
O meu envia assim:
AMPLIAÇÃO DO HGPQuando o servidor recebe a mensagem do meu programa ele coloca ? nos caracteres especiais, mas o que funciona a mensagem fica correta.
Como resolvo isso?
lembrando que quando envio a mensagem via socket ele so aceita se eu converto para local8bit, demais o servidor recebe, mas eu recebo uma mennsagem dizendo que nao é valido a codificacao.
-
Você está usando algum QTextCodec?
O toLocal8bit() verifica qual o codec padrão para fazer a conversão de caracteres.
Você pode tentar 2 coisas:
Colocar este código uma vez no início:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
Ou usar um QTextCodec antes do envio:
QString test = "ALOCAÇÕES"; QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QByteArray socketData = codec->fromUnicode(test);