Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
É aquele velho problema de caracteres estranhos.
Criei minha base e seu conteudo com utf8, e tudo vinha bem sem nenhum problema.
Fiz um backup da base de dados e tive que formatar a maquina. Fiz as copias em arquivo.sql.
Depois na hora de importar os dados começaram os problemas, os textos ficaram todos com acentuações erradas.
Já revirei a net em procura da solução, mas nada funcionou.
o meu arquivo sql :
-- Adminer 4.2.5 MySQL dump
SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
DROP TABLE IF EXISTS `relatos`;
CREATE TABLE `relatos` (
`id` int(2) NOT NULL AUTO_INCREMENT,
`titulo` varchar(70) NOT NULL,
`relato` text NOT NULL,
`data` date DEFAULT NULL,
`autor` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
no banco de dados está como utf8_general_ci.
Na página html está como:
>
Citar
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
Peguei um script da net, na hora de se conectar com o banco de dados:
define('DB_HOST', 'localhost');
define('DB_SCHEMA', 'bdados');
define('DB_USER', 'usuario');
define('DB_PASSWORD', 'senha');
define('DB_ENCODING', 'utf8');
$dsn = 'mysql:host=' . DB_HOST . ';dbname=' . DB_SCHEMA;
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
);
if( version_compare(PHP_VERSION, '5.3.6', '<') ){
if( defined('PDO::MYSQL_ATTR_INIT_COMMAND') ){
$options[PDO::MYSQL_ATTR_INIT_COMMAND] = 'SET NAMES ' . DB_ENCODING;
} $dsn .= ';charset=' . DB_ENCODING;
}
$conn = @new PDO($dsn, DB_USER, DB_PASSWORD, $options);
if( version_compare(PHP_VERSION, '5.3.6', '<') && !defined('PDO::MYSQL_ATTR_INIT_COMMAND') ){
$sql = 'SET NAMES ' . DB_ENCODING;
$conn->exec($sql);
}
Na própria tabela tentei alterar também um dos campos da tabela para latin1_swedish_ci, mas também não funcionou. Neste caso, em uma outra ocasião, em um provedor tive este tipo de problema e bastou fazer isto e resolveu.
Finalizando, o banco de dados do mysql é do laragon, o maria_db....
bem, encontrei uma solução, e posto aqui apenas para efeito de conhecimento.
inicialmente criei a estrutura da tabela manualmente no mysql. Em seguida, ao invés de importar os dados da tabela, no arquivo sql que havia criado anteriormente para salvar os dados da tabela, apenas peguei o trecho do código que faz a inserção do registro e colei na linha de comando do sql, assim:
>
Citar