Pergunta

Nós usamos um serviço web que espera UTF-8. O quadro que usamos no cliente é Apache Axis2. Chamamos o serviço web eo corpo sabão contém seqüências em UTF-8. O problema é que parece que o corpo é "codificada double". Ou seja, temos o personagem 'A'. A representação utf-8 de 'a' em utf-8 é C3 A5 no entanto, ver nos logs que o (duplo), enviada valor codificado é C3 83 C2 A5.

Alguém já experimentou problemas similiar?

Foi útil?

Solução

Não é totalmente claro como você está chamando o serviço web. Será que o método no serviço web apenas tomar uma string? Se assim for, o que faz o seu olhar string como em Java? Todos os strings em Java são UTF-16 codificado - se você está convertendo a representação binária UTF-8 em uma string, tendo cada byte e transformá-lo em um personagem, então esse é o problema

.

Se você pudesse mostrar o que o método que você está chamando parece, e como você está chamando-o, que iria ajudar muito.

Por que vale a pena, eu usei Axis com cordas não-ASCII sem nenhum problema no passado. Eu suspeito fortemente este é um problema com a forma como você está usando, em vez de com o próprio Axis, embora eu estou disposto a estar errado:)

EDIT: Com base no seu comentário, parece que você tem problemas para receber os dados do formulário HTML, antes de bater o serviço web. Se o usuário digitou "A" no formulário, então é isso que você deve ver quando você depuração no Eclipse. Se você está colocando dados ruins em seu serviço de web, não é de admirar que você está recebendo dados ruins para fora na outra extremidade. Eu sugiro que você executar WireShark para ver exatamente o que o navegador está enviando-lhe, tanto em termos de os bytes brutos e também o teor de codificação que está especificando. Meu palpite é que seu servidor web é tratá-la como ISO-8859-1, mas é realmente UTF-8.

Uma vez que você tem a corda corretamente a partir do formulário, eu suspeito que você vai encontrar não há problemas em tudo em passá-lo para o serviço web.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top