malainhocf 0 Posted November 28, 2010 Report Share Posted November 28, 2010 Olá, bom dia a todos, Pessoal que usa o NetBeans para trabalhar com php por favor de-me uma ajuda O problema dos acentos que postei aqui no forum ontem é dedido a má configuração no NetBeans. Eu uso o NetBeans para escrever código e para fazer upload e download dos ficheiros do e para o servidor. O que eu preciso configurar é: gravar os ficheiros com UNIX Line Terminator. Para upload ou Download do servidor devo usar a configuração charset autodetect Como faço essas configurações no netbeans ? Obrigado Link to post Share on other sites
mjamado 42 Posted November 28, 2010 Report Share Posted November 28, 2010 O que eu preciso configurar é:gravar os ficheiros com UNIX Line Terminator. Para upload ou Download do servidor devo usar a configuração charset autodetect Não, não é. Em primeiro lugar, o Netbeans já grava os ficheiros com quebras de linha de Linux. Em segundo, não existe tal coisa como detecção automática do charset (por exemplo, é impossível distinguir em que charset está a string "abcde"). O que precisas de fazer é aceder às propriedades do projecto (menu de contexto em cima do nome do projecto, ou no menu Ficheiro) e lá algures deve ter uma combo para escolher o charset dos ficheiros. Infelizmente, não tenho agora um Netbeans nesta máquina para te indicar o sítio exacto, mas confia que está lá algures. No entanto, todos os ficheiros que já tens "mal gravados", chamemos-lhe assim, terão de ser convertidos primeiros, senão ficam todos minados. Existe uma ferramenta gratuita que converte ficheiros em massa que agora não me lembro do nome (lá está, não estou em numa das minhas máquinas), mas também podes abrir num bom editor de texto, como o TextPad, e gravar na codificação correcta. Acho que até o Notepad dá. Só dá é mais trabalho a abrir cada um deles individualmente... "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to post Share on other sites
malainhocf 0 Posted November 29, 2010 Author Report Share Posted November 29, 2010 O que precisas de fazer é aceder às propriedades do projecto (menu de contexto em cima do nome do projecto, ou no menu Ficheiro) e lá algures deve ter uma combo para escolher o charset dos ficheiros. Infelizmente, não tenho agora um Netbeans nesta máquina para te indicar o sítio exacto, mas confia que está lá algures.No entanto, todos os ficheiros que já tens "mal gravados", chamemos-lhe assim, terão de ser convertidos primeiros, senão ficam todos minados. Existe uma ferramenta gratuita que converte ficheiros em massa que agora não me lembro do nome (lá está, não estou em numa das minhas máquinas), mas também podes abrir num bom editor de texto, como o TextPad, e gravar na codificação correcta. Acho que até o Notepad dá. Só dá é mais trabalho a abrir cada um deles individualmente... MJamado, podes me dar mais dicas em relação a isso que escreves-te ? Obrigado Link to post Share on other sites
mjamado 42 Posted November 29, 2010 Report Share Posted November 29, 2010 Os ficheiros que não estão em UTF-8 têm de ser convertidos com a ferramenta ANSI2Uni. É gratuita. Cuidado, escolhe a opção UTF-8 (no BOM), além da opção certa da codepage de origem (deverá ser 1252) Para mudares o encoding (ou certificares-te que está correcto) no Netbeans, é File » Project Properties, categoria Sources, campo Encoding: valor UTF-8. Finalmente, certifica-te que a ligação à BD é feita em utf-8 também, os ficheiros Javascript, se contiverem caracteres UTF-8 devem ser incluídos usando charset="utf-8" e os ficheiros HTML contém a meta tag para utf-8. "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to post Share on other sites
brunoais 65 Posted November 29, 2010 Report Share Posted November 29, 2010 Finalmente, certifica-te que a ligação à BD é feita em utf-8 também, os ficheiros Javascript, se contiverem caracteres UTF-8 devem ser incluídos usando charset="utf-8" e os ficheiros HTML contém a meta tag para utf-8. E o header a indicar que está em utf-8 "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Link to post Share on other sites
mjamado 42 Posted November 29, 2010 Report Share Posted November 29, 2010 E o header a indicar que está em utf-8 Qual header? 🤔 Se tudo isto for cumprido, o webserver enviará os headers correctos sem ser preciso fazer mais nada... "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to post Share on other sites
brunoais 65 Posted November 29, 2010 Report Share Posted November 29, 2010 Eu já tive problemas com alguns browsers que não processavam correctamente. Tudo por causa das configurações do servidor que, por causa de "optimizações" 😡 a opção de fazer um pré-processamento do head estava desactivada, por isso, ele enviada: Content-Type: text/html em vez de: Content-Type: text/html; charset=UTF-8 O que estragava tudo. O browser não estava à espera de UTF-8 e, por isso, no próprio head tudo ficava mal porque os caracteres estavam em UTF-8 e não em ANSI (ou outro standard do browser) "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Link to post Share on other sites
mjamado 42 Posted November 29, 2010 Report Share Posted November 29, 2010 Isso é um servidor configurado à sapateiro, e é um problema a resolver com o hoster. Era só o que mais faltava ter que estar a settar headers supostamente automáticos à mão porque o sysadmin é otário. E quando fossem ficheiros HTML estáticos, fazia-se o quê? Eu nunca mais trabalhava com esse hoster. 👎 "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to post Share on other sites
Caya 0 Posted November 29, 2010 Report Share Posted November 29, 2010 A culpa pode não ser do hoster mas de quem criou o .htaccess Link to post Share on other sites
mjamado 42 Posted November 29, 2010 Report Share Posted November 29, 2010 A culpa pode não ser do hoster mas de quem criou o .htaccess Quem é que, no seu perfeito juízo, cria um htaccess com esse tipo de directiva? Isso já é tentar justificar o injustificável... "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to post Share on other sites
malainhocf 0 Posted November 29, 2010 Author Report Share Posted November 29, 2010 Pessoal, os meus ficheiros estão todos em UTF-8, já verifiquei o que disse o Mjamado. O meu servidor é a hocnet.pt Alguém tem conta lá e já teve este problema ? Se resolveu, como resolveu ? Finalmente, certifica-te que a ligação à BD é feita em utf-8 também,os ficheiros Javascript, se contiverem caracteres UTF-8 devem ser incluídos usando charset="utf-8" e os ficheiros HTML contém a meta tag para utf-8. Como vejo se a ligação a base de dados é feita em UTF-8 ? gravar os ficheiros com UNIX Line Terminator. E essa história, onde vejo isso ? Obrigado Link to post Share on other sites
mjamado 42 Posted November 29, 2010 Report Share Posted November 29, 2010 O meu servidor é a hocnet.pt Então não tens nenhum problema a resolver em configurações do servidor. É onde estão todos os meus sites, pessoais e profissionais, e todos (quase todos, vá - alguns mais antigos, não) estão em utf-8. Como vejo se a ligação a base de dados é feita em UTF-8 ? O que é que estás a usar para ligar à BD? Coloca aqui o código relevante... gravar os ficheiros com UNIX Line Terminator. À partida já está, porque o Netbeans faz quebras de linha Unix-style, mas, mesmo que não fizesse, não tem qualquer ligação com o problema do charset e podes saltar esse passo. "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to post Share on other sites
malainhocf 0 Posted November 29, 2010 Author Report Share Posted November 29, 2010 A conecção a base de dados é com mysql_connect() Sei que as minha tabelas estão com Latin 1, não deviam estar com utf-8 ? Link to post Share on other sites
mjamado 42 Posted November 29, 2010 Report Share Posted November 29, 2010 A conecção a base de dados é com mysql_connect() Sei que as minha tabelas estão com Latin 1, não deviam estar com utf-8 ? Deviam, sim. Cuidado a converter, provavelmente vais partir os caracteres com diacríticos. Faz um dump total da BD antes. Já tens muitos dados, ou ainda vais a tempo de andar a corrigir à mão? "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to post Share on other sites
malainhocf 0 Posted November 29, 2010 Author Report Share Posted November 29, 2010 O apoio Técnico disse que não era preciso converter a base de dados Ainda não tenho muitos registos Como faço para converter a base de dados para UTF-8 Eu tinha uma instrução sql para isso mas perdi Sei que era qualquer coisa como: ALTER DATABASE `banco_padrao` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci Isso é para o padrão mas como faço para ser UTF-8 Obrigado Link to post Share on other sites
mjamado 42 Posted November 29, 2010 Report Share Posted November 29, 2010 O phpMyAdmin tem interface gráfica para todas estas alterações (está para lá no separador Operações, para a BD e tabelas, e no editar de cada campo). Seja como for, os comandos são os seguintes: Para as tabelas: ALTER TABLE `tabela` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci Para os campos dentro de cada tabela (sim, é preciso ir um a um): ALTER TABLE `tabela` CHANGE `campo` `campo` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL Não te esqueças de verificar depois os caracteres que ficaram quebrados (tipo Ãê nos sítio onde estava um ç ou assim do género) "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to post Share on other sites
malainhocf 0 Posted November 29, 2010 Author Report Share Posted November 29, 2010 Já alterei as tabelas para utf-8 Já tenho os arquivos todos com utf-8 Já alterei os campos para utf-8 Já alterei os dados dos compos Continuo com o problema Scorro, alguém dá uma solução para o meu problema ? Obrigado Link to post Share on other sites
brunoais 65 Posted November 29, 2010 Report Share Posted November 29, 2010 Isto não é obrigatório mas há servidores mysql (por causa das configurações) que exigem que, para tudo ficar em UTF-8, se execute isto sempre que se faz uma ligação: mysql_query("SET character_set_client='utf8'"); mysql_query("SET character_set_connection='utf8'"); mysql_query("SET character_set_results='utf8'"); mysql_query("SET character_set_server='utf8'"); mysql_query('SET names "utf8"'); mysql_query('SET CHARACTER SET utf8'); "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Link to post Share on other sites
malainhocf 0 Posted November 29, 2010 Author Report Share Posted November 29, 2010 Pessoal, Eu descobri uma coisa No meu computador os ficheiros estão com os acentos direitos mas no servidor os acentos estão todos tortos O problema é esse Como resolver isso ? Acho que o problema está no upload dos arquivos para o servidor Obrigado Link to post Share on other sites
mjamado 42 Posted November 29, 2010 Report Share Posted November 29, 2010 No meu computador os ficheiros estão com os acentos direitos mas no servidor os acentos estão todos tortos Como é que sabes? Uma coisa é "aparecerem" tortos, outra coisa é "estarem" tortos... Acho que o problema está no upload dos arquivos para o servidor Disso não é, de certeza. O mero upload não faz nada que tu não mandas, é dali para acolá. Colocaste a meta tag do charset no head dos documentos HTML? "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now