mortigas 0 Denunciar post Postado Março 24, 2009 Possuo uma página com programação em PHP enela um banco de dados onde informações são colocadas em uma tabela tem ocorrido algo que não consigo descobrir o motivo. Uma mesma palavra é inserida de forma diferente devido aos caracteres especiais, as vezes de form correta e outra vez errada. ex: Locomoção e outras vezes locomoÃ$Â@o; Inteiriça e outras vezes Inteiri@$a; Pedagógicos e outras vezes PedagÊ@gicos. Não entendo porque as vezes é inserida de forma correta e outras não, se tem a ver om o navegador usado pela pessoa que acessa ou ... coloquei no cabeçário <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">. Agradeço a ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 24, 2009 Qual SGBD está usando e qual é a codificação daa tabela? Mantenha tudo na mesma codificação, UTF-8, por exemplo. Tanto o banco, quanto a meta tag content-type e os arquivos (codificação do editor de textos) Compartilhar este post Link para o post Compartilhar em outros sites
mortigas 0 Denunciar post Postado Março 24, 2009 O banco de dados usa ISO 8859-1, qual ao SGBD desculpe a ignorância mas não sei o que significa. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 24, 2009 SGBD: http://pt.wikipedia.org/wiki/Sistema_de_ge..._banco_de_dados Os arquivos (codificação do editor) estão em ISO também? Compartilhar este post Link para o post Compartilhar em outros sites
mortigas 0 Denunciar post Postado Março 24, 2009 Os dados do banco de dados são os seguintes: ost * Versão do Servidor: 4.0.27-log * Versão do Protocolo: 10 * Servidor: Localhost via UNIX socket phpMyAdmin - 2.11.1.1 * Versão do cliente MySQL: 4.0.27 * Extensões PHP usadas: mysql * Linguagem - Language Info: * Tema / Estilo: * Tamanho da fonte: * Documentação do phpMyAdmin * Wiki phpMyAdmin * Página Oficial do phpMyAdmin * [ChangeLog] [subversion] [Lists] Não sei se era isso q você queria saber. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 24, 2009 não. perguntei qual é a codificação dos arquivos. Isso é visto no editor de textos que está usando para escrever os scripts. Geralmente deixo tudo em UTF-8. Isso nunca gerou problemas com caracteres especiais. Compartilhar este post Link para o post Compartilhar em outros sites
mortigas 0 Denunciar post Postado Março 24, 2009 Eu utilizo o PHP Editor, mas não encontrei em nenhum lugar esta informação. Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Março 24, 2009 Use: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> em seu código HTML. em sua base de dados, em collation, deixe: latin1_swedish_ci na base de dados também. depois adicione novos registros. estás inserindo dados via php/ajax ? Compartilhar este post Link para o post Compartilhar em outros sites
mortigas 0 Denunciar post Postado Abril 6, 2009 Cara não tenho acesso a estas informações, tenho o banco de dados no TERRA e entrei em contato com eles , porém, só me responderam que não é necessário anterar estas configurações. Informei que queria pelo menos saber quais eram e até hoje não me responderam. Só recapitulando no banco de dados uma informaçãos entra de formas diferentes e não sei o porque. Abaixo exeplo: 00000010605 Acessórios p/Impressoras subcategoria NC menutopo lista_subcat_2 2009-04-06 09:36:03 00000010478 Acessórios p/Impressoras subcategoria NC menutopo lista_subcat_2 2009-04-05 22:39:42 Outras vezes, mais raro, ela some o espaço entre as palavras. Não sei mais o que fazer. Compartilhar este post Link para o post Compartilhar em outros sites
mortigas 0 Denunciar post Postado Abril 14, 2009 Finalmente o terra respondeu PARCIALMENTE !! "Em atenção ao seu e-mail, informamos que nosso servidor MySQL utiliza o padrão iso-8859-1." Apesar te eu ter pedido as informações : Qual o Conjunto de caracteres MySQL: Qual o Collation de conexão do MySQL: Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 14, 2009 mortigas, as tabelas podem possuir collation independente do padrão do server. e para ver as configs, basta executar a query show variables Compartilhar este post Link para o post Compartilhar em outros sites
mortigas 0 Denunciar post Postado Abril 15, 2009 Valeu hinom !!! Apliquei o comando e respondeu .. character_set = latin1 character_sets = latin1 ujis sjis dec8 dos german1 hp8 koi8_ru latin... Isso quer disser que os dois itens são latin1 ? (Conjunto de caracteres MySQL e Collation de conexão do MySQL) Eu tenhio usado o comando <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> no inicio de cada página! O que não entendo é porque as vezes sai correto e as vezes não ? será que depende do navegador usado ou da configuracão do mesmo? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 16, 2009 isso é a spec do banco de dados você precisa certificar-se de qual engine, charset e collation está usando as suas tabelas verfiique também se os campos das tabelas possuem algum collation em especial no MYSQL é possível fazer o seguinte SERVER charset LATIN1 TABLE charset SHIFT_JIS FIELD charset UTF8 isso significa que independente do server estar em latin1, e da taela estar em SHIFT_JIS, os dados para o campo FIELD, serão gravados em UTF-8 se você criou as tabelas sem especificar charset, entao ela assumirá o valor default que é do server "LATIN1" Compartilhar este post Link para o post Compartilhar em outros sites
mortigas 0 Denunciar post Postado Abril 16, 2009 Antes de mais nada quero agradecer hinom pela ajuda! crei um script para realizar um teste que foi o seguinte <? $posi=15157; (e $posi=15135;) $query = "SELECT * FROM contador WHERE cont_id = '$posi' "; $resultado = mysql_query($query,$conexao); while ($linha = mysql_fetch_array($resultado)) { $cont_id5=$linha['cont_id']; $str=$linha['cont_refe']; } $encoding = mb_detect_encoding($str, "UTF-8, ISO-8859-1"); echo "cont_id5= $cont_id5 -- str=$str -- encoding=$encoding" ?><BR><?; ?> Que retornou o seguinte: cont_id5= 00000015157 -- str=Blocos Lógicos -- encoding=ISO-8859-1 cont_id5= 00000015135 -- str=Blocos Lógicos -- encoding=UTF-8 Como pode se as duas inserções foram feitas com a mesma página e nela esta o coamando <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ?? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 16, 2009 os registros foram inseridos por qual aplicativo ? como estava a configuração do charset do aplicativo e do banco de dados no momento em que foram inseridos ? Compartilhar este post Link para o post Compartilhar em outros sites
mortigas 0 Denunciar post Postado Abril 16, 2009 "os registros foram inseridos por qual aplicativo ? como estava a configuração do charset do aplicativo e do banco de dados no momento em que foram inseridos ? " Não sei se é isso que queres saber mas foi inserido através de uma página gerada em PHP e esta foi criada no PHP EDITOR (ondejá procurei, sem sucesso, encontrar esta informção). Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 16, 2009 faça esse teste http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://forum.imasters.com.br/index.php?showtopic=340459 Compartilhar este post Link para o post Compartilhar em outros sites
mortigas 0 Denunciar post Postado Abril 16, 2009 Cara baixei o programa, realizei as alterações, criei os arquivos porém no mysql ao digitar os comandos CREATE DATABASE charset_test; USE charset_test; CREATE TABLE `encoding` ( `id` int(4) NOT NULL auto_increment, `text` varchar(100) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; retornou Erro consulta SQL: CREATE DATABASE charset_test; Mensagens do MySQL : #1044 - Access denied for user: 'benga1@%' to database 'charset_test' ZEBROU Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 17, 2009 1. possui um usuário com privilégios administrativos do mysql ? 2. executou o teste localmente ? Compartilhar este post Link para o post Compartilhar em outros sites
mortigas 0 Denunciar post Postado Abril 17, 2009 Acho que não pois no LOCALHOST esta escrito: Versão do Servidor: 4.0.27-log Versão do Protocolo: 10 Servidor: Localhost via UNIX socket Usuário: benga1@localhost Criar novo Banco de Dados: Sem privilégios phpMyAdmin - 2.11.1.1 Versão do cliente MySQL: 4.0.27 Extensões PHP usadas: mysql Este terra é uma meleca pois na Hostnet, onde controlo outra página, tenho acesso a tudo. Compartilhar este post Link para o post Compartilhar em outros sites