/ / Obtendo codificação de caracteres estranhos na saída json - json, cakephp, codificação de caracteres, cakephp-3.0, cakephp-3.3

Obtendo codificação de caracteres estranha na saída json - json, cakephp, codificação de caracteres, cakephp-3.0, cakephp-3.3

Obtendo coisas assim em minhas respostas JSON:

u003Cpu003ENosso Lorem ipsum dolor sente-se,consectetur elip adipiscing elit, sed eiusmod tempor incididunt ut labore et dolore magna aliqua. Por fim, ad minimamente veniam, quis exercitar nostrud ullamco laboris nisi ut aliquip ex e comodo consequente. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.u003C / pu003PT

Estou assumindo que o CakePHP 3.3 está fazendo algo aqui. Usando extensões de rota padrão json e xml. Com set e serialize em meus controladores. Nada fora do comum que eu possa pensar. Alguma idéia de como mudar isso para algo que possa ser facilmente decodificado por um cliente ou simplesmente desativar a codificação todos juntos?

Respostas:

2 para resposta № 1

Não há nada de estranho nisso, isso é simplesmenterepresentações de tags unicode dos colchetes angulares de abertura e fechamento das tags HTML em seu conteúdo. Esta conversão está sendo aplicada ao usar o JSON_HEX_TAG opção, que o CakePHP faz por padrão.

De fato, o CakePHP atualmente usa

JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT

por padrão. Se você quiser mudar isso, use o _jsonOptions opção de visualização variável para definir sua própria máscara de bit ou defina-a como false para desativar os padrões, ou seja, na ação do seu controlador, faça algo como

$this->set("_jsonOptions", false);

Veja também