silas_i 0 Denunciar post Postado Abril 18, 2008 Estou montando um menu com include mas estou com aquele problema de acentuação. Na index se eu colocar <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> o que eu escrevo no html fica com a acentuação correta porém se uso <?php echo 'Atenção';?> aparece Aten��o Se eu remove a meta e colocar no início do código <?php header("Content-Type: text/html; charset=ISO-8859-1",true);?> ele inverte. O que escrevo no HTML fica com acentuação errada e o php fica certo. Alguém sabe se tem como resolver de vez essa questão de acentuação ? Ou seja tanto faz escrever no HTML ou no PHP com acentos ele mostra corretamente ? Compartilhar este post Link para o post Compartilhar em outros sites
Naroku 0 Denunciar post Postado Abril 18, 2008 dentro de uma pagina php você pode colocar FORA do código PHP (depois do ?>) <HTML> <HEAD> <TITLE>Titulo da página</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> .... e mais o resto do código como o menu eh com include, você pode o include depois do html que le normalmente (pelo menos comigo eh assim) ^^ Espero ter ajudado!! Abraço Compartilhar este post Link para o post Compartilhar em outros sites
silas_i 0 Denunciar post Postado Abril 18, 2008 Naroku, já fiz o que você falou e tb não funcionou ! Compartilhar este post Link para o post Compartilhar em outros sites
Naroku 0 Denunciar post Postado Abril 18, 2008 você ta tentando colocar acento no menu ou na include? se for na include esse codigo tem que ta la oO cara, eu to começando em PHP agora, nunca fiz curso nem nada, vo aprendendo apenas vendo os códigos e vendo pra que eles servem, to procurando um curso aqui!! tenta colocar esse código na index e nas includes também que eu acho que funciona!! Compartilhar este post Link para o post Compartilhar em outros sites
silas_i 0 Denunciar post Postado Abril 18, 2008 Ja fiz isso tb e não deu certo ! Tenho 3 paginas - index - header (include) - users (include) na header tenho uma estrutura buscando do mysql e esta ok! na user lista de usuarios buscando do mysql e os acentos aparecem zuados!!!! como pode isso se as duas pásginas estao iguais ? Compartilhar este post Link para o post Compartilhar em outros sites
Naroku 0 Denunciar post Postado Abril 18, 2008 realmente isso eh estranho posta a users aqui num codebox que seria mais facil ver :P eu tambem to com um problema!! olha um post meu aqui nessa seção e ve se você consegue me ajudar!!! Compartilhar este post Link para o post Compartilhar em outros sites
Rails 3 Denunciar post Postado Abril 19, 2008 silas_i tá no php você tá puxando arquivo de banco de dados? se for o banco pode estar em utf8 e as tabelas em latin_1 ou utf8 porque o utf8 dá erros? porque ele não contém acentos xD o padrão que você tem que usar é o iso.. olha só.. pra html: <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" /> pro php: <?php header("Content-Type: text/html; charset=ISO-8859-1",true);?> os dois tem que ficar em iso pra nenhum ficar invertendo entendeu? ^^ caso seja menu em flash que eu acho que não é! você teria que arrumar ele na opção de idiomas.. não lembro a localização exata no menu, não tenho flash aqui nesta máquina.. abraço ^^ Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 19, 2008 obrigado pela ajuda, apenas corrigindo um informacao olá rails, Citar porque o utf8 dá erros? porque ele não contém acentos xD É aconselhavel o uso do UTF8 por possuir suporte Multi-byte. Para mais informacoes tecnicas sobre metadados no MySQL consulte: http://dev.mysql.com/doc/refman/4.1/pt/charset-metadata.html Quanto à questao do silas_i, está um pouco confusa pois se funciona numa página e não funciona em outra obviamente há um erro ou conflito nos scripts. As causas podem ser diversas. Até mesmo uma distração como editar e salvar um arquivo e executar outro... enfim.. Compartilhar este post Link para o post Compartilhar em outros sites
silas_i 0 Denunciar post Postado Abril 19, 2008 Hinon tb estou achando isso bastante estranho pois em uma página esta ok na outra nao... Rails tenho que "setar" os dois headers ? no php e no html ? bom vou continuar quebrando cabeça com isso.rs.rs.r.sr Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Abril 19, 2008 Não amigo, você precisa apenas colocar no seu HTML entre as TAGS <head></head> .... só deve haver um meta tag do tipo ;) Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Abril 19, 2008 Caracteres como 'ç', 'ã', e cia. pertence à tabela ISO-8859-1. Portanto, se pretende utilizar estes caracteres, use essa tabela. Normalmente, os servidores quando instalados, por padrão usam UTF-8, o que não é desejado pra nós brasileiros, então eu sempre recomendo colocar este header nos códigos que exibam saída HTML: header('Content-type: text/html; charset=ISO-8859-1'); Fora isso, você ainda terá que dizer ao Browser qual tabela ele irá usar, no caso a tal meta-tag com o ISO-8859-1. Observe que não faz sentido você declarar o header dizendo que "esta página conterá caracteres especiais" e na meta-tag você dizer ao browser pra usar UTF-8, que não contém estes caracteres (UTF-8). Resumindo, o PHP modificará o cabeçalho enviado informando ao sistema cliente qual tabela foi usada no arquivo (não confunda isso com a sessão head do HTML, isso faz parte da resposta à requisição HTTP), e a meta-tag dirá ao Browser qual tabela usar. Você ainda pode usaros HTML Special Chars, aquelas sequências tipo: &aaccute;, caso use um charset que não suporte os caracteres em questão. Compartilhar este post Link para o post Compartilhar em outros sites
Rails 3 Denunciar post Postado Abril 20, 2008 Perfeito! márcio leandro completou legal com os HTML Special Chars! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif só que cara.. isso demora se trata de um texto grande.. xD sim é conflito é das tag's mesmo.. então usa o iso que permite a acentuação! tem que tá igual nos dois com padrão ISO-8859-1 como eu te disse! testa ai ;) Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 20, 2008 silas_i, mostre o codigo dessas duas páginas e também a esrutura das tabelas MySQL. Somente as tabelas com nas quais as páginas consultam os dados. Compartilhar este post Link para o post Compartilhar em outros sites
Imperador Julio Cesar 0 Denunciar post Postado Abril 20, 2008 tenta usar <?php echo htmlentities("Atenção"); ?> Compartilhar este post Link para o post Compartilhar em outros sites
silas_i 0 Denunciar post Postado Abril 21, 2008 vou postar as páginas vejam como esta index.php <?php header("Content-Type: text/html; charset=ISO-8859-1",true); require "checkLogin.php"; // Verifica se o usuário esta logado require "func.php"; // Funções require "config.php";// arquivo de configurações require "header.php"; // PEGA O USUÁRIO LOGADO $user = $db->get_row("SELECT * FROM usuarios WHERE id_usuario=".$_SESSION['id'].""); // MONTA O INCLUDE DA PÁGINA SELECIONADA if ($_GET['submenu']=="") { $friend_url = $_GET['menu']; } else { $friend_url = $_GET['submenu']; } $pagina = $db->get_row("SELECT * FROM pages WHERE friend_url='$friend_url'"); ?> <link href="styles.css" rel="stylesheet" type="text/css" /> <title><?php echo TITLE ?></title> <div class="wrap"> <?php if ($pagina->arquivo=="") {echo "Página não encontrada";} else {include 'users.php';} ?> </div> <?php include "footer.php"; ?> header.php (esta busca do mysql e os acentos aparecem ok) <div id="wphead"> <h1><?php echo COMPANY_NAME; ?></h1> </div> <div id="user_info"> Bom dia, <b><?php echo $user->nome; ?></b>. [<a href="#">Meus Dados</a>, <a href="#">Opções</a>, <a href="sair.php">Sair</a>]</div> <ul id="adminmenu"> <?php $sql_menu = "SELECT * FROM pages WHERE submenu='n' AND es_ativo='s'"; if ($user->es_admin=="n") { $sql_menu = $sql_menu . " AND es_admin='n'"; } if ($user->es_gerenciar=="n") { $sql_menu = $sql_menu . " AND es_gerenciar='n'"; } $sql_menu = $sql_menu . " order by ordem asc"; //echo $sql_menu; $menu = $db->get_results($sql_menu); foreach ($menu as $menu2) { if ($_GET["menu"] == "" && $menu2->friend_url == "home") { $varClassMenu = "current"; $varID_page = $menu2->id; } elseif ($_GET["menu"] == $menu2->friend_url) { $varClassMenu = "current"; $varID_page = $menu2->id; } else { $varClassMenu = ""; } echo "<a href='?menu=".$menu2->friend_url."' class=$varClassMenu> $menu2->ds</a>"; } ?> </ul> <ul id="submenu"> <?php if ($_GET["submenu"] == "") { $varClassSubMenu_static = "current"; } else { $varClassSubMenu_static = ""; } ?> <a href="#" class="<?php echo $varClassSubMenu_static; ?>">Inicial</a> <?php $submenu = $db->get_results("SELECT * FROM pages WHERE submenu='s' AND es_ativo='s' AND id_menu=$varID_page"); foreach ($submenu as $submenu2) { if ($_GET["submenu"] == $submenu2->friend_url) { $varClassSubMenu = "current"; } elseif ($_GET["submenu"] == "" && $submenu2->friend_url == "home") { $varClassSubMenu = "current"; } else { $varClassSubMenu = ""; } echo "<a href='?menu=".$_GET['menu']."&submenu=$submenu2->friend_url' class='$varClassSubMenu'>$submenu2->ds</a>"; } ?> </ul> <div id="minisub"></div> users.php (essa página é onde ele mostra os acentos todos zuados) <?php //header("Content-Type: text/html; charset=ISO-8859-1",true); $user = $db->get_results("SELECT * FROM list_users_order_by_nome"); $conta_users = $db->get_row("SELECT * FROM view_conta_users"); ?> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <div id="message" class="updated fade"> <p><strong>usuário cadastrado com sucesso</strong></p> </div> <form action="" method="get" name="search" id="search"> <p> <input type="text" name="usersearch" id="usersearch" /> <input type="submit" value="Procurar Usuário >>" class="button" /> </p> </form> <p>Há <strong><?php echo $conta_users->Total; ?></strong> usuários cadastrados | <a href="#">Cadastrar Novo Usuário</a><br /> </p> <form id="updateusers" name="updateusers" method="post" action=""> <table class="widefat"> <tr class="thead"> <td><strong>ID</strong></td> <td><strong>Usuários</strong></td> <td><strong>Nome</strong></td> <td><strong>Departamento</strong></td> <td><strong>Grupo</strong></td> <td><div align="center"><strong>Ações</strong></div></td> </tr> <?php foreach ($user as $users) { ?> <tr> <td><input type="checkbox" name="id_user" id="id_user" /> 1</td> <td><strong><?php echo $users->login; ?></strong></td> <td><?php echo $users->nome; ?></td> <td> </td> <td> </td> <td> </td> </tr> <?php } ?> </table> </form> estrutura do meu mysql tabela pages DROP TABLE IF EXISTS `sistema`.`pages`; CREATE TABLE `sistema`.`pages` ( `id` int(5) unsigned NOT NULL auto_increment, `submenu` char(1) NOT NULL COMMENT 'N = MENU; S=SUBMENU', `ds` varchar(255) NOT NULL, `friend_url` varchar(255) NOT NULL, `id_menu` int(11) NOT NULL default '0' COMMENT 'caso seja <> 0, corresponde ao menu em questao', `ds_eng` varchar(255) default NULL, `ds_esp` varchar(255) default NULL, `ordem` int(11) default NULL, `es_ativo` char(1) NOT NULL default 's' COMMENT 's = página ativa; n=página inativa', `es_admin` char(1) NOT NULL default 'n' COMMENT 's = página somente vista pelo admin; n=página vista por qualquer usuario, inclusive admin', `arquivo` varchar(255) default NULL COMMENT 'caso tenha algum nome de arquivo aqui ele abrira ao ser clicado no link', `id_plugin` int(5) NOT NULL default '0', PRIMARY KEY (`id`), KEY `id_plugin` (`id_plugin`) ) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=latin1; tabela de usuários DROP TABLE IF EXISTS `sistema`.`usuarios`; CREATE TABLE `sistema`.`usuarios` ( `id_usuario` smallint(5) unsigned NOT NULL auto_increment, `nome` varchar(40) NOT NULL, `login` varchar(255) NOT NULL, `pass` varchar(255) NOT NULL COMMENT 'Senha criptografada', `es_admin` char(1) NOT NULL default 'n', `es_ldap` char(1) NOT NULL default 'n', `es_ativo` char(1) NOT NULL default 's' COMMENT 's = usuario; n=inativo', `es_gerenciar` char(1) NOT NULL default 'n' COMMENT 'n = desabilita menu Gerenciar s=habilita menu Gerenciar', `id_depto` int(10) unsigned NOT NULL default '0', `id_depto_grupo` int(11) NOT NULL default '0', PRIMARY KEY USING BTREE (`id_usuario`,`id_depto`,`id_depto_grupo`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; ja tentei de tudo e os acentos funcionam na header.php mas na users.php nao !!!! Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 22, 2008 silas_i, A página header.php está com caracteres htmlEntities por isso a acentuação funciona. Na página users.php uma metatag declara o conteúdo como UTF-8 mas o conteúdo da página possui codificação ISO faça um teste simples. execute esse script charset.php Citar <?php // conjuntos de caracteres $charset[1] = 'utf-8'; $charset[2] = 'ISO-8859-1'; $n = 2; // troque para o valor 1 e veja como a página se comporta. ?> <html> <?php echo '<meta http-equiv="Content-Type" content="text/html; charset=' . $charset[$n] . '" />'; ?> <body> Água <!-- Água, em formato HTML Entities --> <br /> Água <!-- Água, em formato ISO-8859-1 --> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
silas_i 0 Denunciar post Postado Abril 22, 2008 Hinon, fiz o teste e com o utf8 os dois apareceram com os acentos corretos. Percebi uma coisa as informações do meu mysql estão com acentos e nao com HTML Entities talvez a solução seja tudo o que eu cadastrar no mysql usar HTML Entities, correto ? Existe alguma função que faça isso pra mim ? vou procurar no php ! Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 23, 2008 silas_i Citar Existe alguma função que faça isso sim http://br.php.net/htmlentities mas nao recomendo isso porque de um certa forma estaria "corrompendo" os dados por exemplo o exemplo que postei acima, a palavra Água ficaria gravada no banco de dados dessa forma: "Á" suponhamos que tenha outras palvras: Aba Acetona essas palavras não possuem caracteres especiais, portanto, a ordem alfabética ficaria confusa Água Aba Acetona o correto seria Aba Acetona Água por isso, o aconselho a salvar os dados no formato original Para evitar transtornos utilize um formato padrão. Pode ser que por alguma eventualidade necessite cadastrar caracteres multibyte ou de outros conjuntos de codificação O UTF-8 suporta todos os padrões, por isso é o formato ideal. Entretanto, se o sistema que v está desenvolvendo utilizar somente e tão somente caracteres Latin-iso, mantenha o collation ISO. silas_i Citar as informações do meu mysql estão com acentosprovavelmente o erro está nas suas páginas.aparentemente os dados no BD estão salvos de forma correta na página users.php você está atribuindo charset UTF-8 Citar <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />Essa informação faz com que o browser interprete todos os textos como UTF-8 Na página header.php nao há nenhuma atribuição. Quando isso ocorre, o interpretador do browser determinará um conjunto de caracteres automaticamente. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 25, 2008 Estejam preparados para o PHP6 vejam essa noticia do PHP.net Summer Code evento Google Summer Code 2008 http://code.google.com/soc/2008/php/appinf...D4803BA9A70BCB3 Citar The main PHP 6 feature is native Unicode support, which is currently being implemented. Consequently, a lot of work still has to be done to deliver a full native Unicode support. At the moment, the work of updating all the functions in php-src is roughly 60% complete. In order to speed up the process, the decided approach was to use the ICU library (International Components for Unicode). The main goal of this project is to complete the update of the functions in php-src. The update will consist basically of data type checking. All the parameter parsing has to be ported to use the Unicode methods and the operations over the incoming data have to be consistent with its type. In addition, they also have to return the correct values. In order to achieve this, ICU macros and functions are used to handle Unicode encoded strings properly. Compartilhar este post Link para o post Compartilhar em outros sites
Samurai Pelado 0 Denunciar post Postado Julho 16, 2008 hinom disse: Estejam preparados para o PHP6 vejam essa noticia do PHP.net Summer Code evento Google Summer Code 2008 http://code.google.com/soc/2008/php/appinf...D4803BA9A70BCB3 Citar The main PHP 6 feature is native Unicode support, which is currently being implemented. Consequently, a lot of work still has to be done to deliver a full native Unicode support. At the moment, the work of updating all the functions in php-src is roughly 60% complete. In order to speed up the process, the decided approach was to use the ICU library (International Components for Unicode). The main goal of this project is to complete the update of the functions in php-src. The update will consist basically of data type checking. All the parameter parsing has to be ported to use the Unicode methods and the operations over the incoming data have to be consistent with its type. In addition, they also have to return the correct values. In order to achieve this, ICU macros and functions are used to handle Unicode encoded strings properly. Saaaaaaallveeeee galeraaaaaaaaaa..... to voltando a ativa depois de um longo e tenebroso tempo.... só to aqui p informar q estava com o problema de acentuação em um formulário PHP, tipo... fiz o formulário no dream... e uma pg PHP p enviar o conteudo preenchido para meu e-mail, chegando no e-mail, ele zuava o balacubaco todo... e meu problema foi resolvido com isso: <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" /> http://forum.imasters.com.br/public/style_emoticons/default/clap.gif toda essa alegria é pq sou designer e nao entendo nada de programacao... tenho vertigem só de ver palavrinhas coloridas da tela :wacko: intao... se servir p alguém... taí.... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif :blink: abraço..... Compartilhar este post Link para o post Compartilhar em outros sites