Jump to content
malainhocf

Configurações no NetBeans

Recommended Posts

malainhocf

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


Cumprimentos

Cesar Oliveira

Desenvolvo websites e aplicações web

http://www.profissionalweb.net

Share this post


Link to post
Share on other sites
mjamado
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 é.  :D

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.

Share this post


Link to post
Share on other sites
malainhocf
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


Cumprimentos

Cesar Oliveira

Desenvolvo websites e aplicações web

http://www.profissionalweb.net

Share this post


Link to post
Share on other sites
mjamado

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.

Share this post


Link to post
Share on other sites
brunoais

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%.

Share this post


Link to post
Share on other sites
mjamado

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.

Share this post


Link to post
Share on other sites
brunoais

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%.

Share this post


Link to post
Share on other sites
mjamado

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.

Share this post


Link to post
Share on other sites
mjamado

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.

Share this post


Link to post
Share on other sites
malainhocf

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


Cumprimentos

Cesar Oliveira

Desenvolvo websites e aplicações web

http://www.profissionalweb.net

Share this post


Link to post
Share on other sites
mjamado

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.

Share this post


Link to post
Share on other sites
mjamado

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.

Share this post


Link to post
Share on other sites
malainhocf

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


Cumprimentos

Cesar Oliveira

Desenvolvo websites e aplicações web

http://www.profissionalweb.net

Share this post


Link to post
Share on other sites
mjamado

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.

Share this post


Link to post
Share on other sites
malainhocf

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


Cumprimentos

Cesar Oliveira

Desenvolvo websites e aplicações web

http://www.profissionalweb.net

Share this post


Link to post
Share on other sites
brunoais

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%.

Share this post


Link to post
Share on other sites
malainhocf

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


Cumprimentos

Cesar Oliveira

Desenvolvo websites e aplicações web

http://www.profissionalweb.net

Share this post


Link to post
Share on other sites
mjamado
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.

Share this post


Link to post
Share on other sites
malainhocf

Verifiquei que os acentos estavam errados porque abri o ftp do meu site com o CuteFTP e abri um arquivo para ver como estava no servidor e aparece os acentos errados.

Se no meu computador que tenho o Windows e no servidor que tem o Linux ou Unix os acentos estão diferentes num e noutro lado

Qual será o problema ?

Se eu coloco isto:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Os acentos que vem da base de dados estão errados. Se eu tirar isso os acentos aparecem certos.

Mas se eu colocar isso os acentos que se metem no código xhtml e php estão certos e se eu retirar isso ficam errados.

Obrigado


Cumprimentos

Cesar Oliveira

Desenvolvo websites e aplicações web

http://www.profissionalweb.net

Share this post


Link to post
Share on other sites
mjamado

Verifiquei que os acentos estavam errados porque abri o ftp do meu site com o CuteFTP e abri um arquivo para ver como estava no servidor e aparece os acentos errados.

Isso é problema do CuteFTP. Os acentos estão correctos, podes confiar.

Se eu coloco isto:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Os acentos que vem da base de dados estão errados. Se eu tirar isso os acentos aparecem certos.

Mas se eu colocar isso os acentos que se metem no código xhtml e php estão certos e se eu retirar isso ficam errados.

Essa meta tag tem que lá estar, deixa ficar. Para corrigir os acentos que vêm da BD, o brunoais andou lá perto - tens que definir o encoding da ligação, depois de a abrires (com o mysql_connect):

mysql_set_charset('utf8'); 

Depois disto, deve estar tudo a funcionar.


"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.

Share this post


Link to post
Share on other sites
mjamado

Onde devo colocar isto

mysql_set_charset('utf8');

...tens que definir o encoding da ligação, depois de a abrires (com o mysql_connect):

mysql_set_charset('utf8'); 

Clarificando: logo a seguir ao mysql_connect().


"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.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.