Pergunta

Eu tenho um pequeno aplicativo ajax construído com php.

Usando phpMyAdmin Tenho definir um banco de dados mysql para utf-8, e ter importado um arquivo de texto contendo dados utf-8 para ele.

Esta funcionou bem em uma máquina Windows com easyphp, após a adição de character-set-server = utf8 e default-character-set = utf8 para o arquivo my.cnf.

Eu já tentou mover-se a um servidor de produção onde eu não tiver acesso ao arquivo de configuração, e personagens como tremas não são exibidos.

Existe algo que pode ser definido no código php (não o arquivo de configuração) para resolver isso, ou algum comando que eu posso dar para mysql?

Eu tentei ALTER DATABASE vweb_50 default Caráter SET utf8 utf8_bin COLLATE com phpMyAdmin para tentar a partir utf8_general_ci mas isso não fez diferença.

Foi útil?

Solução

Há um par de coisas para ser feito aqui, e eu não tenho certeza se entendi o seu problema corretamente, mas se eu fizer isso, eu acho que a maioria do que pode ser abordado com as funções PHP utf8_encode e utf8_decode :

  • utf8_encode
    • codifica uma seqüência de ISO-8859-1 para UTF-8
  • utf8_decode
    • A função decodifica os dados, que se presume ser UTF-8 codificado, com a norma ISO-8859-1.

Além disso, olhar para htmlentities se necessário.

Outras dicas

funções

utf8_encode Se você usar utf-8 em todo o aplicativo (que eu recomendaria), você não precisa / decodificação. Você verificou a codificação sua página é servido? Provavelmente o servidor está configurado para enviar iso-8859-1 como charset, enquanto seu ambiente de teste envia utf-8. Definir a codificação com um cabeçalho Content-Type:

header("Content-Type: text/html; charset=utf-8");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top