Alô, pessoal.
Gostaria da opinião de vocês nessa questão: Existe diferença significativa entre as versões ANSI e Unicode e suas respectivas IDEs?
Pergunto porquê ainda tenho programas na versão 3.0.46 que funcionam muito bem. Porém, por não ter alguns recursos das versões atuais,
acabei fazendo programas "auxiliares" em 3.4.4 para ter esses tais recursos.
Mas estou com um problema antigo: Na versão Unicode as telas ficam todas estragadas nos caracteres acentuados e os dados das tabelas também.
Como tive que usar os "auxiliares" lendo esses dados, fui usando funções de conversão e mudando o codepage.
Com esse aprendizado, tentei gerar uma versão de um sistema em 3.0.46 com a 3.5 mexendo nos codepages. Aà veio o abacaxi:
Se boto em "PTISO", fica quase tudo bom em termos de telas e certinho em tabelas de dados, os acentos ficam corretos.
Porém, na hora de gerar relatórios, tudo que leva acento fica ruim, imagino que são os fontes que converti pra UTF-8. Se troco o codepage pra
"UTF8EX" as telas ficam ruins, os dados de tabela idem mas a parte de programas fica ok, tudo escrito com acento sai correto. AÃ me quebrou.
Nenhum jeito fica 100% bom. Acho que teria que ficar mudando codepages e convertendo partes de texto pra tudo ficar perfeito.
O problema é ter que reescrever um programa grande, com muitas telas e vários PRGs. Não parece muito viável todo esse trabalho.
Entretanto, fiz uma experiência com o a IDE ANSI, com os fontes em ANSI também. O codepage ficou como "PTISO". Compilei e ficou quase tudo
bom, exceto alguns botões que ficam com fundo preto, outros com a imagem ruim. Mas isso é o de menos, é perfumaria que pode ser ajustada ou trocada.
Na verdade, tenho um programa feito com a ANSI e roda certinho há cinco anos. Mas fiquei com aquilo de ter que usar Unicode.
Mas esse programa eu fiz do zero, aà foi tranquilo.
Se não houver diferença significativa entre o Unicode e o ANSI, pra mim ficaria melhor de usar o ANSI.
Detalhe: eu voltei a ver isso na verdade para retomar os estudos para trabalhar com SQL, que tive que deixar no canto por causa do serviço.
O que leva essa questão ao terreno das bases de dados. Estou tentando passar pra MySql, pois tem muita coisa pronta no Harbour e a galera
aqui tem vasta experiência nela postada aqui. Mexendo aqui e lendo postagens vi que o "collate" padrão é "latin1_swedish_ci", imagino que
compatÃvel com ANSI. Pra usar visando o Unicode acho que teria que usar o "collate" como UTF-8, não é isso?
Aà de novo a questão: quais as vantagens e desvantagens das duas formas? Sei que o UTF-8 é desejável se for para programação web. Se tem algo
mais a favor ou contra, não sei. Mas como ainda faço tudo desktop, pra mim não seria problema, salvo se fosse fazer algo web, seria isso ou
poderia fazer web como "latin1" mesmo? Creio que seria uma questão a postar nas seções de base de dados e/ou SQL, devo postar lá também pra
colher a opinião dos colegas mais tarimbados.
Desculpem o texto longo e desde já agradeço as opiniões dos colegas.
Saudações,
Mario.