Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Meu banco de dados está com charset "Latin1_General_CI_AS", a página está em ISO-8859-1 (pelo que li, está correto, de acordo com pesquisas que fiz na interet ISO-8859-1 é mesma coisa que Latin1...). No entanto, os resultados que busco no banco de dados, estao vindo para mim como "ASCII", já tentei de tudo para convertá-la, já busquei por todos os cantos na internet... é possível convertê-la?
Então... Coloquei essa função na minha variável e retornou vazio... Quando coloquei "mb_detecting_encoding" me retornou ASCII, aí coloquei a "chr" na variável e retornou vazio... Tipo, lá no banco tem palavras como INFORMÁTICA, RECEPÇÃO, EXPEDIÇÃO, etc... e seus caracteres especiais são substituídos por "?" (INFORM?TICA, RECEP??O, EXPEDI??O, etc...)
Se eu utilizar CHR em cada letra (eu utilizei na variáve inteira), será que vai reconhecer o "?" como "?" ou será que vai reconhecer como o caracter que realmente é "Á/Ã/Ç..."
Ata entendi, seu problema são com os caracteres especiais.
O ideal seria vc configurar tudo como utf8, no banco de dados utf8_general_ci e no charset da página utf-8 também. Com isso não vai ter problemas com caracteres especiais.
Então, infelizmente não posso editar o banco de dados (por que ele não é meu...). Já mudei o charset da página (coloquei como UTF-8 e como ISO-8859-1) e para estes dois casos tentei: variável; utf8_encode(variável); utf8_decode(variavel);
Estou a um tempão com este problema, tentei também funções como "iconv" e "mb", ambas sem sucesso... O banco de dados é SQL Server, estou usando ODBC, acha que pode ter alguma relação com a função ODBC? Ouvi falar de PDO, acha que pode resolver? Já tentei mudar o charset via PHP e também pelo meta do HTML... Já não tenho mais ideias :(
Desde já, obrigado.
Trabalhe em sua pagina somente com UTF-8.
HTML 5
<meta charset="UTF-8">
HTML 4
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
E no caso use utf8_encode();Não tem jeito, muito estranho cara...
<?php
header("Content-Type: text/html; charset=UTF-8");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml](http://www.w3.org/1999/xhtml)">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<?php
//faço a consulta
$setor = utf8_encode(trim($resultado['setor']));
?>
E quando gravo no banco de dados, ou exibo -> INFORM?TICA
Quando coloco mb_detecting_encoding($setor) me retorna ASCII, não entendo o que pode estar acontecendo :(
Desde já, obrigado.
Já tentei :[
Estou alterando o charset e exibindo a variável de todas as formas que conheço, coloquei um alert no meu código, veja:
echo '<script type="text/javascript">alert("tipo________ : '.mb_detect_encoding($setor) .'\n"+
"variavel____ : '.$setor .'\n"+
"utf_encode : '.utf8_encode($setor) .'\n"+
"utf_decode : '.utf8_decode($setor) .'\n"+
"iconv______ : '.iconv("ISO-8859-1", "UTF-8//TRANSLIT", $setor) .'\n"+
"mb_convert : '.mb_convert_encoding($setor, "UTF-8", "ISO-8859-1").'\n");</script>';
Este código, com o charset em UTF-8, me retorna:
alert("tipo________ : ASCII\n"+
"variavel____ : INFORM?TICA\n"+
"utf_encode : INFORM?TICA\n"+
"utf_decode : INFORM?TICA\n"+
"iconv______ : INFORM?TICA\n"+
"mb_convert : INFORM?TICA\n");
E com o charset em ISO-8859-1, me retorna exatamente a mesma coisa :[
Desde já, obrigado...
Gostaria de agradecer à todos que ajudaram. Eu desisti da ideia, fiz de outro jeito.
Muito obrigado mesmo.
Função chr
http://br1.php.net/manual/pt_BR/function.chr.php