[FUG-BR] Duvidas em relacao aos charsets utilizados

Otacílio otacilio.neto em bsd.com.br
Sábado Outubro 13 21:23:58 BRT 2012


On 13/10/2012 13:28, Nilton Jose Rizzo wrote:
> 
> 
> Estou com uma dúvida e ainda não consegui visualizar se a minha
> opção é a mais correta ou se existe uma mais correta.
> 
> Antigamente, quando os ASCII eram 7 bits não podiamos seguer ter
> letras maiusculas/minuscular, hoje temos a facilidade de optar por
> um determinado charset que nos agrade, a minha dúvida é em relação
> a melhor escolha, se é o utf-8 ou o iso.8859.1, por que falo isso,
> eu adotei como padrão para mim o utf-8 por ter uma definição mais
> abrangente e talvés se torne o padrão mundial.  Mas por hora ainda
> tenho problemas com algumas codificações, em especial em páginas da
> web.  Quando faço uma página procuro acentuar no padrão HTML
> (&LETRAacento), mas muita gente usar o acento direto 
> (acentoLETRA).
> 
> Gostaria de saber a opinião de vocês em relação a essa questão?
> 


Eu entendo que o mais correto é usar o UTF-8 porém o FreeBSD tem uma
deficiência grave (se eu estiver errado alguém me corrija). O FreeBSD
não ordena corretamente quando usando o charset UTF-8 e a linguagem
pt_BR. Por exemplo, na minha máquina está assim:

[ota em squitch Desktop]$ locale
LANG=pt_BR.UTF-8
LC_CTYPE="pt_BR.UTF-8"
LC_COLLATE="pt_BR.UTF-8"
LC_TIME="pt_BR.UTF-8"
LC_NUMERIC="pt_BR.UTF-8"
LC_MONETARY="pt_BR.UTF-8"
LC_MESSAGES="pt_BR.UTF-8"
LC_ALL=


Eu tenho um arquivo texto com as seguintes vogais:
[ota em squitch Desktop]$ cat ordenar
e
u
i
o
a
E
U
I
O
A
é
ú
í
ó
á
É
Ú
Í
Ó
Á


Depois eu mando ordenar:
[ota em squitch Desktop]$ cat ordenar  | sort
A
E
I
O
U
a
e
i
o
u
Á
É
Í
Ó
Ú
á
é
í
ó
ú

Eu entendo que esta ordenação está errada. Quando eu mando fazer a
mesma coisa no PostgreSQL ele ordena da seguinte forma:

SELECT * FROM (VALUES
('e'),
('u'),
('i'),
('o'),
('a'),
('E'),
('U'),
('I'),
('O'),
('A'),
('é'),
('ú'),
('í'),
('ó'),
('á'),
('É'),
('Ú'),
('Í'),
('Ó'),
('Á')
)AS letras(vogais) order by Vogais

"a"
"A"
"á"
"Á"
"e"
"E"
"é"
"É"
"i"
"I"
"í"
"Í"
"o"
"O"
"ó"
"Ó"
"u"
"U"
"ú"
"Ú"


Eu entendo que a ordenação do PostgreSQL é a mais correta. O banco
onde eu rodei esta ordenação tem as características:
CREATE DATABASE "AES"
  WITH OWNER = trac
       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'pt_BR.UTF-8'
       LC_CTYPE = 'pt_BR.UTF-8'
       CONNECTION LIMIT = -1;


Veja que a ordenação do FreeBSD deveria ser a mesma do PostrgeSQL mas
infelizmente não é. Lembro que quando fiz o mesmo teste usando LATIN1
a ordenação no terminal do FreeBSD era correta, mas tem uns softwares
que exigem que o sistema esteja usando UTF-8.

Bem, se os outros colegas tiverem mais comentários...



Mais detalhes sobre a lista de discussão freebsd