Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno M Duarte

Como configurar o MySql para que não exiba caracteres extranhos

Recommended Posts

Olá galera é eu de novo com mais uma duvida a ser descoberta ....rs

 

Pois bem, o que acontece e que eu estou usando o banco de dados MySql e quando eu cadastro determinados textos com caracteres especiais como: `, ´, ¨, ^, ~, º, ª. Na hora que eu exibo esse texto nos sites eles aparecem com uns caracteres extranhos como um losango com um ponto de interrogação dentro!!!

 

Dai eu gostaria de saber como eu configuro o meu banco de dados ou então alguma outra solução para que eu possa resolver esse pequeno probleminha.....rs..

 

É isso ae galera até aproxima vlw.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é má configuração do conjunto de caracteres (charset). Você está usando um charset inadequado para os caracteres que você está armazenando.

 

Quando criar um banco de dados, defina o charset UTF-8

CREATE DATABASE meubd
 DEFAULT CHARACTER SET utf8
 DEFAULT COLLATE utf8_general_ci;

 

E para criar uma tabela:

CREATE TABLE tabela (
 campo CHAR(20)
CHARACTER SET utf8 COLLATE utf8_general_ci);

Compartilhar este post


Link para o post
Compartilhar em outros sites

e ae Bruno beleza?

é simples, não é necessário fazer alteração no banco, mas após fazer a seleção do banco você insere esse comando:

 

mysql_query("SET NAMES 'utf8'");

 

 

Espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

mysql_query("SET NAMES 'utf8'");

 

É uma solução, é comum ver em scripts de código aberto pois os autores querem garantir que o script irá funcionar independentemente da configuração do servidor.

 

Complementando sua resposta, uma tradução da parte do manual que explica SET NAMES:

SET NAMES indica qual conjunto de caracteres o cliente irá usar para enviar uma declaração SQL para o servidor.

Assim, SET NAMES 'cp1251' diz ao servidor, "futuras mensagens deste cliente estão no conjunto de caracteres cp1251."

Isso também especifica o conjunto de caracteres ao qual o servidor deve enviar os resultados de volta ao cliente

(Por exemplo, ele indica qual conjunto de caracteres usar para o valor da coluna se você usar uma declaração SELECT)

 

No PHP também é possível fazer o mesmo usando a função mysql_set_charset.

 

É importante lembrar também que o uso disso traz impacto negativo na performance. É recomendável portanto, se o seu script só irá rodar em um ambiente que você instalar, que defina logo UTF-8 por padrão e não use SET NAMES. Do livro "High Performance MySQL" (Baron Schwartz, Peter Zaitsev, and Vadim Tkachenko, O'REILLY), página 606:

Another common garbage query is SET NAMES UTF8, which is the wrong way to do things anyway (it does not change the client library’s character set; it affects only the server). If your application uses a specific character set for most of its work, you can avoid the need to change the character set by configuring it as the default.

Compartilhar este post


Link para o post
Compartilhar em outros sites

#4

até cansei de explicar isso quando vem um e posta O SET NAMES como "solução"

 

mas é bom ter alguem para explicar de vez em quando... pelo menos evita que os novatos levem adiante "metologias errôneas"

Compartilhar este post


Link para o post
Compartilhar em outros sites

e ae Bruno beleza?

é simples, não é necessário fazer alteração no banco, mas após fazer a seleção do banco você insere esse comando:

 

mysql_query("SET NAMES 'utf8'");

 

 

Espero ter ajudado

beleza..... Alisson tudo certo e com você?

 

Pois bem em ralação a sua dica deu certo e os caracteres extranhos desapareceram

vlw pela dica .... ate mas abraços :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.