marciarf 0 Denunciar post Postado Junho 12, 2008 Olá Estou com dois problemas a meu ver insolúvei, porém confio muito nas várias cabeças brilhantes desse fórum. Alguém pode dizer: lá vem de novo com essa história de problemas com acentuação, porém, depois de ler tudo possível, não consigo resolver meu problema. Já troquei headers de utf8 pra iso-8859', mas nada resolveu. Meu caso tem uma especificidade, meu banco de dados é preenchido por um arquivo xml que é interpretado por um parser. No arquivo xml tenho dados com com caracteres especiais como, por exemplo, caminhão, aço, m2. Quando isso é gravado nas tabelas do meu bd aparecem tudo errado, como ão, ço e ², respectivamente. No gerenciador do MySQL, aparece que o conjunto de caracteres MySQL: UTF-8 Unicode (utf8) e o Collation de conexão do MySQL é utf8-unicode_ci. Não sei como alterar essas características mas também não sei se as alterando, resolveria o problema. Nos arquivos php coloquei no header("Content-Type: text/html; charset=ISO-8859-1",true) e mais esses mysql_query("SET NAMES iso-8859-1") e mysql_query("SET CHARACTER_SET iso-8859-1"). Nada disso resolveu. Será que uma alma sábia poderia me ajudar a solucionar isso? O outro problema é que estou desenvolvendo um sistema e estou ajustando a interface pra fazer tudo trabalhar como um conjunto. A questão é que tenho um dado que é chave pra tudo que faço nesse sistema, entao quando o usuário loga esse dado é passado via GET para o arquivo seguinte. O problema é que nesse arquivo a interface é feita em Flash e não estou conseguindo enviar esse dado quando chamo um outro arquivo, já que não se trata de um form onde eu poderia faze-lo usando input type="hidden". Existe também alguém que saiba isso? Olha, se tiver eu ganharei o ano... Márcia Compartilhar este post Link para o post Compartilhar em outros sites
cassiano óliver 1 Denunciar post Postado Junho 12, 2008 faça isso que você fez, porém com utf8 mysql_query("SET NAMES uft8") e mysql_query("SET CHARACTER_SET utf8"). Ah, coloca essas linhas no arquivo de conexão... Compartilhar este post Link para o post Compartilhar em outros sites
marciarf 0 Denunciar post Postado Junho 12, 2008 é amigo cassiano ainda não foi dessa vez, portanto, continuo procurando incessantemente a solução para esses DOIS problemas. Thanks faça isso que você fez, porém com utf8 mysql_query("SET NAMES uft8") e mysql_query("SET CHARACTER_SET utf8"). Ah, coloca essas linhas no arquivo de conexão... Compartilhar este post Link para o post Compartilhar em outros sites
marciarf 0 Denunciar post Postado Junho 12, 2008 Na verdade não é que não resolva. Em parte resolve pq aparecem os caracteres corretos, porém ele some com parte da palavra, por exemplo caminhão, só aparece ão, aço somente ço e m2, só o 2. Acho que agora estou mais perto da solução. Falta pouco é amigo cassiano ainda não foi dessa vez, portanto, continuo procurando incessantemente a solução para esses DOIS problemas. Thanks faça isso que você fez, porém com utf8 mysql_query("SET NAMES uft8") e mysql_query("SET CHARACTER_SET utf8"). Ah, coloca essas linhas no arquivo de conexão... Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 13, 2008 utilize variáveis de sessão ou codifique os parametros com urlencode ou base64_encode Compartilhar este post Link para o post Compartilhar em outros sites
marciarf 0 Denunciar post Postado Junho 13, 2008 caro hinom você poderia ser mais específico para o meu caso, tipo: onde devo fazer isso? no parser, quando leio do banco. Não sou uma expert no assunto entao, se puder ser um pouco mais claro, eu agradeço. Sinceramente não conheço esses comandos ai. Thnaks utilize variáveis de sessão ou codifique os parametros com urlencode ou base64_encode Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 14, 2008 parece que o problema está no momento que você envia os dados de uma aplicação pra outra para vitar corrompimentos use session vars do PHP ou usando funções decodificação do php http://php.net/urlencode http://php.net/base64_encode http://php.net/session Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Junho 27, 2008 aproveitando o tópico, gostaria de saber ´´e possivel usar urlencode() para a url toida e não somente para cada variavel. e Como fazer isso? tipo pagina.php?urlencode(resto da url) Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 28, 2008 aproveitando o tópico, gostaria de saber ´´e possivel usar urlencode() para a url toida e não somente para cada variavel. e Como fazer isso? depende do que você está fazendo Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Junho 28, 2008 Enviando um link cheio de variaveis e entre elas um que contem texto com acento. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 29, 2008 o próprio browser converte automaticamente para o formato URLEncode. para restar dados provindos do methodo get sempre utilize URL decode obviamente que você deve utilizar urldecode somente quando for necessário. Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Junho 29, 2008 Tudo bem. La na internet na minha hospédagem ta.; Mas no meu internet explorer rodando local não ta dando. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 30, 2008 o encode é independente do server. digite no seu brower http://localhost/?uma frase qualquer Com espaços e caracters Especiais os espaços e caracters especiais são convertidos em urlencode por exemplo, o código do "espaco" é %20 funciona também com caracters multibyte (japones, arabe, grego, hebraico, etc) Compartilhar este post Link para o post Compartilhar em outros sites
NoX1911 0 Denunciar post Postado Julho 2, 2008 Estou com o mesmo problema, entretanto meu caso é diferente do descrito aqui. Tenho um BD normal e pego os dados através de um formulário. Com isso, todo o contudo que entro na página com o form, quando enviados para o db acabam ficando com aqueles caracteres indefinidos. Alguma solução para isso? Compartilhar este post Link para o post Compartilhar em outros sites
NoX1911 0 Denunciar post Postado Julho 2, 2008 Nao consegui mudar no banco de dados, mas consegui fazer mostrar na pagina com acentos normais. Tentei antes de enviar os dados pro db htmlentities($var); mas mesmo assim os dados chegam com caracteres miuto loucos :) Compartilhar este post Link para o post Compartilhar em outros sites
Jea.n 0 Denunciar post Postado Julho 5, 2008 Opa estou tento um problema igual a esse . . . a tabela no banco que uso ta configurada como charset : latin1 collation : latin_swedish_ci Uso php e xajax ( para trabalhar com ajax ) e eu estava com o problema de na tabela so esta entrnado esses codigos doidos qnd tem acento . . . depois de muito procurar consegui resolver isso usando utf8_decode($var) na hora de inserir no banco ate ae tudo bem , so que o auto suggest que eu uso ele continua a aparecer os codigos doidos na hora da busca. O codigo de retorno dele e <?php include "conexao.php"; $q = $_GET["q"]; $pagesize = 50; [color="#FF0000"] //ja tentei esses de baixo /*mysql_query("SET NAMES utf-8"); mysql_query("SET CHARACTER_SET utf-8"); mysql_query("SET NAMES iso-8859-1"); mysql_query("SET CHARACTER_SET iso-8859-1");*/[/color] $sql = "select * from sis where locate('$q', sis_nome) > 0 order by locate('$q', sis_nome), sis_nome limit $pagesize"; $results = mysql_query($sql); while ($row = mysql_fetch_array( $results )) { $id = $row["sis_id"]; $name = ucwords( strtolower( $row["sis_nome"] ));[color="#FF0000"]// e tambem aqui colocar utf8_decode(ucwords( strtolower( $row["sis_nome"] )))[/color] $html_name = preg_replace("/(" . $q . ")/i", "<b>\$1</b>", $name); echo "<li onselect=\"this.text.value = '$name'; $('sss').value = '$id'; \"><span>$id</span>$name</li>\n"; } mysql_close(); ?> Muito obrigado agradeço desde ja. Compartilhar este post Link para o post Compartilhar em outros sites
Jea.n 0 Denunciar post Postado Julho 5, 2008 a Vlw a todos mas ja consegui fazer mostrar certo na pagina que retorna eu coloquei utf8_encode() nas palavras que vinham do banco e depois da conexao mysql_query("SET NAMES 'iso-8859'"); mysql_query("SET CHARACTER SET 'iso-8859'"); echo "<li onselect=\"this.text.value = '".utf8_encode($name)."'; $('sss').value = '$id'; \"><span>$id</span>".utf8_encode($name)." </li>\n"; vlws e quem tiver com o problema parecido tenta que vai ;P vlws a todos. Compartilhar este post Link para o post Compartilhar em outros sites
marciarf 0 Denunciar post Postado Julho 15, 2008 bom, esse post foi iniciado por mim e finalizado por outros participantes do forum, porém como meu problema não foi resolvido ainda, resolvi ressuscita-lo, se isso é possível. Como já disse, meu caso tem uma especificidade, meu banco de dados é preenchido por um arquivo xml que é interpretado por um parser. Entao vou postar aqui o trecho inicial desse parser: <?php header("Content-Type: text/html; charset=iso-8859-1",true); //header("Content-type: text/html; charset=utf8"); $hostname='localhost'; $username='root'; $banco='projeto_bd'; $db=mysql_connect($hostname,$username); mysql_select_db($banco,$db); mysql_query("SET NAMES UTF-8"); mysql_query("SET CHARACTER_SET UTF-8");E pra que ninguém diga que não tentei nada diferente ainda, já fiz todas as possibilidades, ie, usei os dois headers (iso-8859-1 e utf8), mudei os mysql_query("SET NAMES UTF-8") e mysql_query("SET CHARACTER_SET UTF-8") na conexao para os dois padroes, invertendo com os headers. Coloquei utf8_encode nas minhas variáveis antes de serem gravados no bd, mas nada resolveu. Mudou o problema apenas, mudando os caracteres que apareciam la. Meu bd é MySQL e aparece na tela do phpMyAdmin "CONJUNTO DE CARACTERES MySQL: UTF8 UNICODE(utf8) e COLLATION DE CONEXAO DO MySQL: utf8-general_ci. Esta última opcao vem em uma dropdown list, porém nao consigo modifica-la. Alguém tem ainda alguma sugestão? Olá Alguém pode dizer: lá vem de novo com essa história de problemas com acentuação, porém, depois de ler tudo possível, não consigo resolver meu problema. Já troquei headers de utf8 pra iso-8859', mas nada resolveu. Meu caso tem uma especificidade, meu banco de dados é preenchido por um arquivo xml que é interpretado por um parser. No arquivo xml tenho dados com com caracteres especiais como, por exemplo, caminhão, aço, m2. Quando isso é gravado nas tabelas do meu bd aparecem tudo errado, como ão, ço e ², respectivamente. No gerenciador do MySQL, aparece que o conjunto de caracteres MySQL: UTF-8 Unicode (utf8) e o Collation de conexão do MySQL é utf8-unicode_ci. Não sei como alterar essas características mas também não sei se as alterando, resolveria o problema. Nos arquivos php coloquei no header("Content-Type: text/html; charset=ISO-8859-1",true) e mais esses mysql_query("SET NAMES iso-8859-1") e mysql_query("SET CHARACTER_SET iso-8859-1"). Nada disso resolveu. Será que uma alma sábia poderia me ajudar a solucionar isso? Olha, se tiver eu ganharei o ano... Márcia Compartilhar este post Link para o post Compartilhar em outros sites
cassiano óliver 1 Denunciar post Postado Julho 15, 2008 o seu banco está como utf8_unicode_ci? a solução que te passei inicialmente funciona perfeitamente se o banco estiver da forma acima... mysql_query("SET NAMES uft8") e mysql_query("SET CHARACTER_SET utf8"). Compartilhar este post Link para o post Compartilhar em outros sites
marciarf 0 Denunciar post Postado Julho 15, 2008 cassiano óliver Meu banco está como: CONJUNTO DE CARACTERES MySQL: UTF8 UNICODE(utf8) e collation da conexao:utf8_general_ci. Mas você viu o inicio do meu parser, com header e depois esses mysql_query("SET NAMES uft8") e mysql_query("SET CHARACTER_SET utf8"). É isso mesmo, pq dessa forma que eu te mostro ai, pra mim não grava corretamente. o seu banco está como utf8_unicode_ci? a solução que te passei inicialmente funciona perfeitamente se o banco estiver da forma acima... mysql_query("SET NAMES uft8") e mysql_query("SET CHARACTER_SET utf8"). Compartilhar este post Link para o post Compartilhar em outros sites