Ir para conteúdo

POWERED BY:

Arquivado

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

marciarf

enviar dados hidden e acentuação

Recommended Posts

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

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

é 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.