michaeldouglas / laravel-pagseguro

Integração com o gateway de pagamento pagseguro, para utilização com o Laravel
358 stars 119 forks source link

encoding, Acentuação. #55

Closed laerciocrestani closed 8 years ago

laerciocrestani commented 8 years ago

Pessoal, estou passando os parâmetros:

'sender' => [ 'email' => ''.$cadastro->email.'', 'name' => 'Laércio Crestani',

O erro é Error on send: 400-<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>Malformed request XML: {0}.Malformed request XML: XML document structures must start and end within the same entity..

Creio que seja a parte da acentuação. Alguém tem alguma alternativa?

marabesi commented 8 years ago

Ja tentou tirar o acento do nome ?

laerciocrestani commented 8 years ago

Sim, já tirei e funciona perfeitamente, gostaria de saber se é padrão do pagseguro sem acentuaçnao ou devo trocar o encoding dele

Em 31 de mar de 2016, à(s) 11:01, Matheus Marabesi notifications@github.com escreveu:

Ja tentou tirar o acento do nome ?

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/michaeldouglas/laravel-pagseguro/issues/55#issuecomment-203953469

xshifty commented 8 years ago

https://blogpagseguro.com.br/2012/03/acentuacao-da-descricao-do-seu-produto-apareceu-errada-veja-como-solucionar/

Nesse link explica que a codificação padrão do pagseguro é iso-8859-1, se tu enviar os dados em outro formato, ele vai dar problema mesmo.

Tente codificar a string para esse formato. Creio que um utf8_decode já resolva. Mas recomendo o uso da iconv.

xshifty commented 8 years ago

@laerciocrestani resolveu?

laerciocrestani commented 8 years ago

Pois é... A minha App esta toda em UTF-8 se utilizo o iconv ele fica desta forma:

Laércio Crestani = La?rcio Crestani.

usei uma function desta forma:

function removeAcentuacao($string) { $string = htmlentities($string, ENT_COMPAT, 'UTF-8'); $string = preg_replace('/&([a-zA-Z ])(uml|acute|grave|circ|tilde|cedil|amp|rdm|rdf);/', '$1',$string); return html_entity_decode($string); }

Deu certo aqui...

isaquesb commented 8 years ago

@laerciocrestani

Acabei de subir uma correção para resolver esse seu problema. Pode usar acentos em UTF-8 normalmente agora.