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

Responder a