Personagem estranho do PHP antes do sinal de £?
-
20-09-2019 - |
Pergunta
Por algum motivo eu recebo um Â
£ 76756687 Personagem estranho quando eu digito £ em um campo de texto no meu formulário?
Solução
Como você suspeita, é um problema de codificação de personagens - a página está definida para usar um charset do UTF -8? (Você não pode errar com isso realmente.£
)
Como exemplo de conjunto de caracteres (para a página do formulário e email HTML), você pode usar:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Dito isto, existe uma boa razão para o usuário ter que entrar no símbolo da moeda? Seria uma idéia melhor tê -lo como um item de texto estático ou uma queda à esquerda do campo de texto? (Sinta -se à vontade para ignorar se eu estiver falando de bunda e estiver usando uma textarea ou sump de forma livre.)
Outras dicas
Você provavelmente está usando o UTF-8 como codificação de caracteres, mas não declare sua saída corretamente. Porque o £
O caractere (U+00A3) é codificado no UTF-8 com 0xc2a3. E essa sequência de bytes representa os dois caracteres Â
e £
Quando interpretado com ISO 8859-1.
Então você só precisa especificar seu personagem que codifica corretamente. No PHP, você pode usar o header
função Para definir o valor adequado para Tipo de conteúdo campo de cabeçalho Curti:
header('Content-Type: text/html;charset=utf-8');
Mas certifique -se de chamar essa função antes de qualquer saída. Caso contrário, o cabeçalho HTTP já foi enviado e você não poderá modificá -lo.