Pergunta

Eu tenho esse valor em um banco de dados mysql: "A +" é o nome de uma revista. Eu posso vê-lo sentado no banco de dados, no entanto i não conseguem tê-lo exibir via php. Quando eu buscar os dados SQL, ele saídas

"A"

utfencode Tentei () utfdecode () htmlentities () ... sem sucesso. Eu não conseguem diagnosticar o problema. No caso, importa, eu buscar esses dados via ajax (carga jQuery () função)

UPDATE:

Acontece que o sinal + é removido ao analisar os dados através de uma expressão regular. parece que não consegue encontrar uma solução para o que quer. preg_quote () é de nenhum uso.

Foi útil?

Solução

É possível que jQuery está interpretando-a como a url codificado sinal '+', que pode ser interpretado como um espaço. Postar algum código e tenho certeza que alguém pode dar-lhe uma resposta completa.

Outras dicas

O personagem + é interpretado como espaço quando os dados é declarado como application/x-www-form-urlencoded :

Este é o tipo de conteúdo padrão. Formulários enviados com este tipo de conteúdo deve ser codificado como segue:

  1. nomes e valores de controle são escapou. Caracteres de espaço são substituídos por '+' , e os personagens, então reservados são escapados como descrito em [RFC1738], secção 2.2: Non-alfanumérico caracteres são substituídos por '%HH', um sinal de porcentagem e dois dígitos hexadecimais representando o código ASCII do caractere. Quebras de linha são representadas como pares "CR LF" (ou seja, '%0D%0A').
  2. Os nomes de controlo / valores são listados na ordem em que aparecem no documento. O nome é separado do valor por '=' e pares nome / valor são separados uns dos outros por '&'.

Então você tem que codificá-lo corretamente. Em JavaScript, use a função encodeURIComponent se você quiser usar caráter + em uma URI:

"http://www.example.com/?q=" + encodeURIComponent("A+")

Você passá-lo como um parâmetro de javascript sem urlencode () 'ing-lo?

Bem, já que a única maneira de fazer o trabalho é fazer

echo urlencode("this is the A+ text");


Ele funciona e não parece danificar o resto do texto, mas eu não entendo a lógica por trás disso. De qualquer forma, obrigado a todos aqueles que tentaram ajuda.

Você pode adicionar um caractere de escape antes do \ e ver como isso funciona. Se não converte os dados de campo usando htmlentities

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