Acho melhor eu reformular:

no WINDOWS:

CREATE DATABASE teste
  WITH OWNER = postgres
       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'Portuguese_Brazil.1252'
       LC_CTYPE = 'Portuguese_Brazil.1252'
       CONNECTION LIMIT = -1;

no LINUX:

CREATE DATABASE teste
  WITH OWNER = postgres
       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'pt_BR.utf8'
       LC_CTYPE = 'pt_BR.utf8'
       CONNECTION LIMIT = -1;


_Não consigo_ criar no LINUX as configurações (COLLATE,CTYPE) iguais do WINDOWS:

ERROR:  invalid locale name: "Portuguese_Brazil.1252"
********** Error **********

ERROR: invalid locale name: "Portuguese_Brazil.1252"
SQL state: 42809

_Não consigo_ criar no WINDOWS as configurações (COLLATE,CTYPE) iguais do LINUX:

ERROR:  invalid locale name: "pt_BR.utf8"
********** Error **********

ERROR: invalid locale name: "pt_BR.utf8"
SQL state: 42809


Qual seria o collate/ctype correto no LINUX, para que eu não tenha problemas de equivalência, pois, apesar de os 2 o ENCODING serem UTF8, não tem caracteres equivalentes.

Se uso um "ç" num, por exemplo, ao fazer um backup/restore pro outro, esse caractere muda.

Eduardo Az

Em 01/12/2016 14:12, Charly escreveu:
Eduardo, vamos por partes,

            /LC_COLLATE = 'pt_BR-ISO-8859-1' LC_CTYPE =
            'pt_BR-ISO-8859-1'/

        /Olá Eduardo,
          reparei que estais usando um hífen separando pt_BR de
        ISO-8859-1, onde me parece que deveria haver um ponto.

        Experimente assim:

        /

        /LC_COLLATE = 'pt_BR.ISO-8859-1' LC_CTYPE = 'pt_BR.ISO-8859-1'
        Att. Alex /



    corrigi, porem, deu erro tb.

    ERROR:  encoding "UTF8" does not match locale "pt_BR.ISO-8859-1"
    DETAIL:  The chosen LC_CTYPE setting requires encoding "LATIN1".
    ********** Error **********

    ERROR: encoding "UTF8" does not match locale "pt_BR.ISO-8859-1"
    SQL state: 22023
    Detail: The chosen LC_CTYPE setting requires encoding "LATIN1".


No teu primeiro email você cita "Portuguese_Brazil.1252". Faz muito tempo que eu não uso windows e esse encoding está com um nome um pouco diferente do que eu costumava ver mas reconheço o "1252". Infelizmente "Windows-1252" é quase um ISO-8859-1 mas não é. Existem algumas sequencias de caracteres que são diferentes o que provoca erros.

Outro problema é que no windows UTF8 pode ser utilizado com qualquer locale enquanto que no linux não, isso é um pouco mais organizado. Ao invés de utilizar o locate pt_BR.ISO-8859-1 tenta utilizar pt_BR.UTF8.

Att,

Charly Batista




_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a