Ir para conteúdo

POWERED BY:

Arquivado

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

TalPaipai

Charset no PHP

Recommended Posts

Opa,

Estou com problemas de acentuação no php, antes de mais nada eu li este tópico aqui até o fim:

http://forum.imasters.com.br/topic/283085-resolvido-acentuacao-utf-8-e-iso/page-2

Usei os comandos:

<?php header ('Content-type: text/html; charset=UTF-8'); ?>

<?php header ('Content-type: text/html; charset=ISO-8859-1'); ?>

mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');

Mas não surti-o efeito nem um. Segue o print da minha situação:

slmjpt.png

Uso um arquivo html dentro dele uso um include php para chamar o arquivo responsável por estas palavras ai com erros, no meu arquivo html ele se encontra setado com <meta charset="utf-8"> abaixo estou postando o meu arquivo php que desejo por um Charset para poder solucionar este problema:

<?php				

include "conexao.php";
				
//Instruções SQL				
$sql = "SELECT ID, DESCRICAO FROM CONTAS";				
                        
//Executa a instrução SQL
$query = ibase_query ($sql);
			
//Gera um loop com as linhas encontradas
while ($row = ibase_fetch_object ($query)) {			

$id = $row->ID;
$desc = $row->DESCRICAO;							
		
echo "<option value='$id'>$desc</option>";
		
}			

mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');
						
//Libera a memoria usada
ibase_free_result($query);
            
//fecha conexão com o firebird
ibase_close($dbh);
			
?>

o que desejo é NÃO mexer no arquivo HTML e ajustar o arquivo PHP para ele poder ler tranquilamente os acentos sem erros!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue abaixo:

<?php       
        /* ibase_connect — Abre uma conexão com um banco de dados InterBase
        pode ser colocado o IP, ou nome do computador onde esta o banco de dados */        
		
		// Servidor 
		$servidor = '192.168.254.205:C:\Reffit\Helisa\Dados\DADOS.fdb';
		
		//$servidor = 'localhost:C:\Helisa\Dados\DADOS.fdb';		
        
        //conexão com o banco, se der erro mostrara uma mensagem.
        if (!($dbh=ibase_connect($servidor, 'SYSDBA', 'masterkey', 'ISO8859_1')))
                die('Erro ao conectar: ' .  ibase_errmsg());    
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Edit os dados de conexao! :unsure:



Seu problema esta no Charset 'ISO8859_1'

if (!($dbh=ibase_connect($servidor, 'SYSDBA', 'masterkey', 'ISO8859_1')))

Troque para o mesmo que esta no banco de dados e tabela ou seja utf8 já que declarou isso acima:

 mysql_query("SET NAMES 'utf8'");

E onde você esta usando mysql_* :lol:


Leia mais:
http://www.ibexpert.net/ibe/index.php?n=Doc.CharacterSetsAndUnicodeInFirebird

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou aprendendo ainda ^^

Eu coloquei assim:

if (!($dbh=ibase_connect($servidor, 'SYSDBA', 'masterkey', 'utf8'')))

e também:

if (!($dbh=ibase_connect($servidor, 'SYSDBA', 'masterkey', 'SET NAMES 'utf8'')))

mas não funfou não, continuou a mesma coisa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

aprende a ler também quando postamos algo

Vou postar novamente

http://www.ibexpert.net/ibe/index.php?n=Doc.CharacterSetsAndUnicodeInFirebird

OU melhor vou colar

UTF-8

UTF-8 is also widely used to encode Unicode. Here 8-bit strings are used. The US-ASCII characters which also the first 128 characters of the Unicode definition stay untouched. Other characters occupy 2-4 contiguous bytes. The complete code space can be coded. There is the same problem as with multi-byte character sets with the calculation of string lengths, substrings etc.

E mude tudo para utf-8, conexão, banco e scripts

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi agora, não basta apenas setar no arquivo de conexão tem que também configurar tudo para rodar em um único charset, se tiver algum arquivo diferente o erro aparece.

Eu tinha acessado o link olhei por cima, e não fiz a tradução pelo google, eu não ia notar se tu não frisa-se para me, falta de atenção.

obrigado, amplexos......

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.