Cálculo incorreto do content-length de body com caracteres especiais causando erro 500 em requisições rest

Boa tarde!

Estou com um problema em algumas requisições de REST que estão retornando erro 500. Investigando um pouco mais, vi que está relacionado a utilização de caracteres especiais no json body.

Exemplo:


{
   "nome": "João"
}

Tratando esse json com a função noAcento() tive sucesso na requisição (apesar de perder a acentuação dos nomes em geral)... mas tem um outro caso que não encontrei saída:


{
   "nome": "João 1º"
}

Após utilizar o noAcento obtenho:


{
   "nome": "Joao 1º"
}

Ao enviar esse body o protheus calcula o len como 18 e adiciona essa info no Content-length, causando erro 500 devido a diferença de comprimento da string (content-length diferente do tamanho do json body)... No Postman é calculado como 19, e lá a requisição é feita com sucesso. Joguei a string no notepad++ e lá também é calculado igual o postman (19)

Alguém teve algum problema parecido? Tentei tratamento com encode utf8 mas bagunça um pouco mais a string. Parece que o calculo do len não calcula corretamente quando existe ª e º.

Obrigado

Rodrigo, nesse caso você é o client ou o server? Tem um exemplo para reprodução do problema?