Em 09/03/08, Ribamar Sousa<[EMAIL PROTECTED]> escreveu:
> Em 09/03/08, Euler Taveira de Oliveira<[EMAIL PROTECTED]> escreveu:
>
> > Ribamar Sousa wrote:
>
> > >> Tens que se certificar que seu PHP esta' enviando UTF8. Que o PHP esta
> > >> dizendo ao navegador que o encoding e' UTF8. Veja a documentacao do
> > >> PHP.
> > >
> >
> > Isso você pode verificar com [1] e ajustar em [2].
>
>
> Acho que agora eu começo a pisar no chão:
>
> Criei um banco em win1252
> Este código em PHP:
> pg_connect("host=localhost user=postgres password=postgres dbname=teste");
> pg_set_client_encoding("UNICODE");
> echo pg_client_encoding();
>
> Retorna UTF-8
>
O contrário Riba... deixe a base em UTF-8... aí você usa o client
encoding que achar melhor...
A idéia é utilizar a codificação mais genérica no lado server e a
específica no lado client. Afinal, se o UTF-8 pode ser convertido para
vários encodings "on the fly", então futuras aplicações clientes
também poderão se conectar na base utilizando o encoding que for
necessário para ela.
Uma grande limitação do UTF-8 sempre foi o Windows que oferece um
suporte ruim para ele. Na web os navegadores já lidam bem com o UTF-8
há um tempinho, mas em aplicações client/server em windows a coisa
piora um bocado. Não sei como isso está nas últimas versões do windows
(xp e vista), mas a tendência, que eu saiba é de o Windows ir se
ajustando ao padrão e não o padrão se ajustar ao windows.
Na versão 8.0, sei que o PostgreSQL teve alguns problemas com o UTF-8,
não recomendo usar o UTF-8 com esta versão do 8.0. Mas veja, as
versões ".0" costumam ser tão revolucionárias quanto problemáticas,
não apenas no PostgreSQL. O UTF-8 é realmente o futuro... mas você tem
que saber onde está pisando antes de utilizar ele no lado client...
[]s
Fábio Telles
>
> > > Acontece que então não devo ter entendido a conversão automática, onde
> > > diz que em estando o servidor com utf8 converterá automaticamente de
> > > clientes em qualquer codificação.
>
> > +-----------+ +--------+ +-----------+
> > | (1) | (a) | (2) | (b) | (3) |
> > | servidor |<------>| liqpq |<-------->| aplicação |
> > | utf-8 | | latin1 | | *latin1* |
> > +-----------+ +--------+ +-----------+
>
>
> Na prática, quem é o cliente é a "libpq", correto.
>
> Agora consegui fazer minha pequena aplicação em PHP no windows
> funcionar perfeitamente com uma base UTF-8.
>
> Apenas setei a codificação logo após a conexão:
>
> $strConexao="host=127.0.0.1 user=postgres password=postgres
> dbname=iniciante port=5432";
> $conexao=pg_connect($strConexao);
> pg_set_client_encoding("UNICODE");
>
> Veja uma saída (não foi forjada :)):
>
> Código - Nome
> 1 - Ação
> Menu
>
> Muito grato Euler por mais esta.
>
>
> --
> Ribamar FS - [EMAIL PROTECTED]
> http://ribafs.net
> _______________________________________________
>
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
--
blog: http://www.midstorm.org/~telles/
e-mail / jabber: [EMAIL PROTECTED]
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral