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 HGP

    Quando 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.



  • @Rodrigocg,

    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);
    


  • Obrigado pela resposta! vou testar hoje o que vc mandou e depois posto aqui se funcionou...


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.