Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Portuguese
  4. Mensagem soap nao é enviada com codificacao correta
Forum Updated to NodeBB v4.3 + New Features

Mensagem soap nao é enviada com codificacao correta

Scheduled Pinned Locked Moved Portuguese
soapsocketxml
3 Posts 2 Posters 1.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    Rodrigocg
    wrote on last edited by
    #1

    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.

    1 Reply Last reply
    0
    • T Offline
      T Offline
      TioRoy
      wrote on last edited by
      #2

      @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);
      
      1 Reply Last reply
      0
      • R Offline
        R Offline
        Rodrigocg
        wrote on last edited by
        #3

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

        1 Reply Last reply
        0

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved