Ir para conteúdo

Arquivado

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

lgall

não consigo cadastrar palavras com acento no bco

Recommended Posts

Olá,

 

Sou novo no forum e estou começando a estudar mysql, e estou precisando de ajuda em um projeto meu.

 

Estou tentando inserir (insert into) via mysql 5.5 command line client em minha tabela palavras com acento, mas esta retornando o erro

incorrect string value.

 

estou usando o seguinte CHARACTER SET utf-8 e COLLATE utf8_general_ci.

 

Alguém pode me ajudar?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

INSERT INTO prod (Produtos)values('Cartão');

 

 

TROQUEI A CODIFICAÇÃO DO BANCO CHARACTER SET LATIN1 e COLLATE LATIN1_SWEDISH_CI.

AGORA AS PALAVRAS CADASTRADAS NO BANCO ESTÃO CORRETAS TODAS COM ACENTO.

POREM QUANDO ABRO O SITE EM LOCALHOST VIA DREAMWEAVER O RESULTADO DA CONSULTA EM PHP RETORNA AS PALAVRAS COM ERROS DE ACENTUAÇÃO.

JÁ SALVEI O ARQUIVO COM A CODIFICAÇÃO LATIN1 NO DREAMWEAVER, JÁ COLOQUEI A TAG META COM LATIN1, TB COLOQUEI O HEADER COM LATIN1, CONFORME LI EM OUTROS TOPICOS E NADA RESOLVEU ATÉ O MOMENTO.

SERÁ QUE ALGUEM PODE ME AJUDAR?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O cadastro das palavras no banco fiz pelo mysql 5.5 command line. Ultilizei a SQL para inserir dados no banco e fazer as consultas. Se eu deixar a codificação UTF8 não consigo cadastrar palavras com acento retorna o erro "incorrect string value for column", mas se eu colocar a codificação em latin1 consigo fazer o cadastro de forma correta sem dar erro. Porém quando vou exibir em meu site o resultado da consulta via dreamweaver cs5 as palavras com acento aparecem com erro.

Abaixo vou colocar o script em php onde faço a consulta no banco mysql:

 

<?php

header('Content-Type: text/html; charset=latin1');
$conexão = mysql_connect("localhost","root","atalho")
or die(mysql_error());
$base= mysql_select_db("grafica")
or die(mysql_error());
$consulta= "select Produtos from produtos";
$resultado= mysql_query($consulta)
or die(mysql_error());
$linha= 0;
while ($linha < mysql_num_rows($resultado))
{
$Produto = mysql_fetch_array ($resultado);
echo '<option value = "">'.$Produto[0].'</option>';
$linha= $linha +1;
}
?>
OBS: Ja ultilizei a função mysql_client_encoding para ver a codificação que esta retornando, o resultado é latin1.
O QUE PODE ESTAR ACONTECENDO?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está acontecendo que algum lugar o charset está errado.

Tente usar:

<meta http-equiv="Content-Type" content="text/html; charset=latin1" />

No banco utilize:

ALTER DATABASE `sua_base` CHARSET = Latin1 COLLATE = latin1_general_cs;

Google tem diversas soluções, sendo que muitas funcionam...

 

Obs: aconselho usar utf-8

Obs2: Sempre utilizo está maneira (Click).. :3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bri~,

 

desde já agradeço pela sua ajuda.

 

As soluções que vc me apresentou já foram feitas e não deram resultado.

 

Estou usando latin1 pois quando uso utf8, tento cadastrar uma palavra com acento no banco e retorna o erro "string value incorrect for column" só aceita palavras sem acento. Já quando uso latin1 consigo cadastrar normalmente mas o resultado da consulta é que fica errado. Você sabe me dizer porque com utf8 não consigo cadastrar palavras com acento?

 

desde já agradeço.

 

 

Olá amigos,

 

depois de muito tentar resolvi desinstalar tudo e instalar novamente, já que eu estava fazendo tudo correto(base, editor, tabela, coluna com mesmo codificação) mas não estava resolvendo.

 

agora após desinstalação do mysql e instalando de novo está OK.

 

desde já agradeço pela ajuda de todos.

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.