Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, tô desenvolvendo sites usando utf8 e tô passando por uns perrengues em caracteres acentuados...
Tá funfando de boa, só quando pego os dados do mysql é que a acentuação não tá funfando. Coloquei abaixo um pedaço do DDL da minha base de dados. Dá pra ver que tá toda em utf8, então porquê o PHP não tá processando a acentuação corretamente?
-- phpMyAdmin SQL Dump-- version 2.9.0.2-- http://www.phpmyadmin.net-- -- Host: localhost-- Generation Time: Jul 30, 2007 at 10:57 AM-- Server version: 4.1.22-- PHP Version: 4.4.2-- -- Database: mysqldb-- CREATE DATABASE mysqldb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;USE mysqldb;-- ---------------------------------------------------------- -- Table structure for table clientes-- CREATE TABLE clientes ( idCliente int(11) unsigned NOT NULL auto_increment, razaoCliente varchar(80) collate utf8_unicode_ci NOT NULL default 'CLIENTE TESTE', linkCliente varchar(80) collate utf8_unicode_ci default NULL, logoCliente varchar(80) collate utf8_unicode_ci default NULL, PRIMARY KEY (idCliente)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=12;-- -- Dumping data for table clientes-- INSERT INTO clientes VALUES (1, 'XXX - Cliente número 01', 'http://linkcliente.com.br', 'logomarca001.gif');INSERT INTO clientes VALUES (2, 'XXZ - Cliente número 02', 'http://linkcliente2.com.br', 'logomarca002.gif');
o collation do banco de dados tem que ser utf-8 , a pagina tem que ser utf-8 (e nao o iso 8859-1 )
agora, quanto ao php com db é o seguinte
utf8_encode() para mostrar os dados do mysql sem o erro.ou então ja resolve o problema todo com
mysql_set_charset('utf8',$conexão);//coloca isso depois da conexão. Isso porque o mysql_connect por padrão coloca o charset da conexão como latin 1.
foi mal a demora, (2007 lol)
Espero ter ajudado.
flw
Muito Obrigado, este tópico me ajudou e muito! =D
Estamos em 2012 e ele ainda ajuda =)
Funcionou !!! Me ajudou hoje !
Estamos em 2012 e eu nunca agradeci a ajuda que recebi... sou muito cara de pau mesmo!!!
Não agradeci porque realmente passou batido... e como tenho muitos posts acabou ficando pra trás...
Agora que alguem respondeu aqui fui notificado por e-mail e acessei novamente o tópico...
Quero aqui de antemão agradecer aos colegas que responderam e também me desculpar pelo vacilo!!
Muito obrigado. Me ajudou muito. ^^
Na época foi a salvação da lavoura... sempre na hora de gravar era um Deus-nos-acuda... Hoje eu já uso uma abordagem diferente, definindo tudo como utf-8, desde as páginas html até o banco de dados...
No mysql na hora de criar um banco de dados, defino tanto o collation de banco de dados, quanto da conexão como sendo utf8_general_ci e corro pro abraço... nada de ficar convertendo pra gravar ou convertendo de volta...
E usando então em conjunto com um framework como zend, synphony ou laravel eles já são escritos pra suportar bem utf_8... então é mamão com açúcar!
Boa tarde galera vou publicar meu código aqui para que alguém me ajude pois não consigo fazer pergar os acentos no meu site local tipo no wamp ele pega acento tudo mas no servidor ele não quer ir , quem sabe estou fazendo algo errado, estou fazendo é o seguinte eu altero documento e salvo e depois eu subo, será que tenho que remover o que está no servidor e depois subi o alterado?
segue codigo:(os que estão em vermelho foi o que eu fiz alteração pois pesquisei na net)
<!DOCTYPE HTML>
**<html xmlns="[http://www.w3.org/1999/xhtml](http://www.w3.org/1999/xhtml)" lang="pt-br" xml:lang="pt-br">**
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?=$titulo;?></title>
<meta name="description" content="<?=$descricao;?>" />
<meta name="keywords" content="palavras, chave" />
<meta name="copyright" content="Copyright © 2012" />
<meta name="author" content="Webla Comunicação Digital" />
<meta name="viewport" content="width=device-width" />
<meta name="rating" content="general" />
<meta name="language" content="Portuguese" />
<meta name="robots" content="index, follow" />
<meta name="googlebot" content="index, follow" />
<meta name="google-site-verification" content="" />
<meta property="og:site_name" content="" />
<meta property="og:title" content="" />
<meta property="og:image" content="img/facebook.png" />
<!---PARTE DO JQUERRY SLIDE--->
<script type="text/javascript" src="js/jquery-1.9.0.min.js"></script>
<link rel="stylesheet" href="js/Slide/themes/default/default.css" type="text/css" media="screen" />
<link rel="stylesheet" href="js/Slide/nivo-slider.css" type="text/css" media="screen" />
<link href="estilo.css" media="all" rel="stylesheet" type="text/css">
<!---IMAGENS DO JQUERRY SLIDE--->
ja tentou colocar na primeira linha da pagina?
header("Content-Type: text/html; charset=ISO-8859-1",true);
quando você olha direto no banco tudo aparece certo ne?