Clipper On Line • Ver Tópico - HMG - Unicode x ANSI

HMG - Unicode x ANSI

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

HMG - Unicode x ANSI

Mensagempor Mario Mesquita » 14 Abr 2021 16:30

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.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

HMG - Unicode x ANSI

Mensagempor JoséQuintas » 14 Abr 2021 18:40

Ué....
HMG tem versão unicode e ansi.
É só trocar versão sem trocar pra unicode.

No banco de dados, acho que dá pra definir pelo conector, sem mexer na base de dados.

Eu optei por trabalhar com Ansi PT-BR, a mesma codepage do Windows, que também bateu com o Visual Basic, e com página de internet.

UTF-8 não penso em usar tão cedo.
Estou no Brasil, PT-BR, não me interessa usar UTF-8 só pra outros países enxergarem automático.

Aliás.... página de internet também tem codepage.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

HMG - Unicode x ANSI

Mensagempor Mario Mesquita » 14 Abr 2021 19:09

Boa noite a todos.

Então, Quintas, esse é o ponto. Se usar a Unicode tem esse ritual todo pra fazer: converter os prg pra UTF-8, mexer nas telas pq perde todos os acentos, uma
festa. No ANSI parece que pode usar direto, mantém os fontes em ANSI mesmo e as telas continuam com as letras acentuadas normais.

Mas falando assim, posso até testar isso, manter os fontes em ANSI e compilar com o Unicode. Mas lembro que isso não dá muito certo.

Sobre as bases, são sistemas intranet, não são web, mas mesmo assim daria pra usar web em ANSI mesmo? Sei lá se no futuro preciso ter algo nesse sentido...

Digo o que consegui compilando fonte em ANSI com Unicode.

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

HMG - Unicode x ANSI

Mensagempor Mario Mesquita » 14 Abr 2021 19:58

Voltei.

Já tinha criado uma cópia do sistema pra compilar em ANSI, foi só abrir a IDE Unicode e compilar pra ver. Melhorou no aspecto de tudo que vem dos fontes
fazer correto agora, como relatórios. Mas nas telas, uma coisa bizarra: Ao editar, tudo feio, letras com acento com aqueles caracteres estranhos. Mas se compilar aparece certo. É o codepage, está pro "PTISO". Mas se na edição vc corrigir uma letra dessa, ao compilar ela fica estranha na execução embora correta na edição. Se botar o codepage pra UTF-8 acerta as telas e estraga o resto. Talvez por isso tenha duas IDEs, uma pro Unicode e uma pro ANSI.

Se o desempenho do programa for o mesmo, sem nenhum erro em função da IDE, por mim fica como ANSI mesmo. Porquê o Unicode é pra acertar a leitura no windows em outros idiomas e caracteres, mas não preciso disso. O que preciso mesmo são dos recursos das versões mais novas pois acabei fazendo pequenos programas "por fora" na 3.4.4 por não querer sair da 3.0.46 no sistema principal.

Mas já tô pegando alguma diferença de comportamento: uma telinha que edita usuário a partir de um grid, não vem o registro certo da tabela. Já estou tendo que acertar. A gente acredita que a versão mais nova vai rodar o programa como na versão anterior e dá isso. Já preocupa pois se tem que testar tudo antes de pôr em produção. Fazendo pequenos testes rápidos, não achei mais nada, mas claro que tem que testar tudo mesmo.

Ainda vou tentar usar outros codepages pra ver se algo muda. Aí volto e digo como ficou.

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

HMG - Unicode x ANSI

Mensagempor JoséQuintas » 14 Abr 2021 20:03

Que tal complicar mais um pouco?

https://github.com/HMG-Official/HMG
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

HMG - Unicode x ANSI

Mensagempor Mario Mesquita » 14 Abr 2021 22:15

Olá.

Vi mas não entendi bem. Alguma alteração no Unicode? Tremenda sopa de letrinhas, rs...

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

HMG - Unicode x ANSI

Mensagempor JoséQuintas » 15 Abr 2021 10:52

Essa daí é como uma continuação da HMG, com alterações posteriores, e à primeira vista, mais direcionada para o Harbour.

Pensei que tinha citado aqui antes:

Nas minhas "mexidas" com HMG, tive problemas com um arquivo em unicode que vém com ela.
O Windows 10 NÃO consegue zipar por causa dos caracteres no nome do arquivo.
Apesar do ZIP do Windows rejeitar, no formato 7zip aceita.

Se até o Windows ainda se perde com isso, acho que pode ser melhor esperar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

HMG - Unicode x ANSI

Mensagempor Mario Mesquita » 15 Abr 2021 12:01

Bom dia a todos.

Cara, nem brinca com esse Windows. Me aconteceu uma agora do arco da velha: para gerar uns documentos em PDF/A eu uso o PDF Creator. Muito bom mesmo,
cria várias impressoras virtuais com diversos perfis, uma beleza.

Aí o que acontece? Uma atualização do Windows simplesmente impede de gravar imagens nos documentos, que levam um QR Code. Depois que gera e se vai ver
tá tudo preto onde deveria ter a imagem.

O que tá me salvando é a sua PDF Class. Fiz umas gambiarras nela pra gerar como PDF/A, tive que botar dois arquivos fonte na pasta do programa pq dava erro
ao gerar, dei meu jeito. Na verdade já tinha isso como alternativa pq em alguns lugares sumiam as impressoras virtuais, acho que por antivírus ou algum técnico ia lá e matava achando que não era necessário, sei lá...

Mais um motivo pra não mexer com esse tal de Unicode. Se não precisa pro que faço, deixa como é hoje.

Mas agora que estou preparando com a ANSI, vou ter que calibrar a PDF Class de novo pq fiz um arranjo lá pra reconhecer o UTF-8, já que fiz os programas auxiliares com a versão Unicode...

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

HMG - Unicode x ANSI

Mensagempor Itamar M. Lins Jr. » 15 Abr 2021 12:09

Olá!
Mas é bom saber que UTF/Unicode é o futuro.
Essas outras codepage não vão existir isso é apenas para legado. Tudo que é novo usa UTF8 no Harbour UTF8EX letras acentuadas.
Tem sinais no UTF8, código do EURO, etc... que não tem nessas outras páginas de código.
Se pretende usar/interagir seu aplicativo com WEB, Mobile, é bom pensar nisso e se for importar alguma coisa também.
Quando diz que usa UTF8 já é um alívio, nessas situações.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

HMG - Unicode x ANSI

Mensagempor Itamar M. Lins Jr. » 15 Abr 2021 12:11

Olá!
UTF-8 é um esquema largamente utilizado ao passo que ANSI é praticamente obsoleto. ANSI usa um único byte ao passo que UTF-8 usa uma codificação multibyte. UTF-8 pode representar uma gama de caracteres muito maior que o bastante limitado ANSI.

https://pt.stackoverflow.com/questions/27519/quando-usar-ansi-e-quando-usar-utf-8#:~:text=UTF%2D8%20%C3%A9%20um%20esquema,que%20o%20bastante%20limitado%20ANSI.
...
UTF-8 não tem nenhum desses problemas uma vez que possui seu próprio ponto de código.

UTF-8 é superior ao ANSI de todas as maneiras. Não existe motivo para se preferir ANSI ao invés de UTF-8 ao criar aplicações as quais possam ser decodificadas por todos os computadores. A única razão plausível seria a execução de um aplicativo antigo o qual você não tenha um substituto viável para ele.


Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

HMG - Unicode x ANSI

Mensagempor JoséQuintas » 15 Abr 2021 12:33

Mario Mesquita escreveu: vou ter que calibrar a PDF Class de novo pq fiz um arranjo lá pra reconhecer o UTF-8


acho que é alterar aqui

   VAR    cCodePage         INIT "WinAnsiEncoding" // "CP1252"


Itamar M. Lins Jr. escreveu:Mas é bom saber que UTF/Unicode é o futuro.


O DOS/Windows era Ansi.
Depois a Microsoft inventou o unicode, isso vém desde o Windows 98/XP, há mais de 20 anos.
Só lembrando: o Harbour tem isso de unicode, e no começo precisava instalar a unicows.dll pra Windows velhos, unicode era opcional.
Depois veio o UTF-8.

O futuro é.... unicode de 20 anos atrás.... então o Linux vai usar o unicode da Microsoft....
O futuro é... UTF-8... então o Windows vai mudar...

O barato é doido, cada vez entendo menos.
Dizer que o UTF-8 é o futuro é fácil, o difícil é entender essa coisa toda.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

HMG - Unicode x ANSI

Mensagempor JoséQuintas » 15 Abr 2021 12:39

unicows.png


Peguei o primeiro post que encontrei.
Unicode é de mais de 20 anos atrás.

E agora?
O futuro é de 20 anos atrás?
O Windows está preparado pra UTF-8 há mais de 20 anos?
E o Linux também?

Sei lá.... é de endoidar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

HMG - Unicode x ANSI

Mensagempor Itamar M. Lins Jr. » 15 Abr 2021 12:47

Olá!

UTF -> Unicode Transformation Format.

"Unicode" não é uma codificação especifica, ele se refere a qualquer codificação que usa a união de códigos para formar um caractere.

UTF-8: Neste formato cada caractere varia entre 1 e 4 bytes. Sendo que valores ASCII usam 1 byte cada


No meu entender:
Unicode está no UTF mas o UTF não é apenas Unicode.

É tipo SQL(ANSI) e SQL(MSSQL) que pode até ser melhor mais é privado da Microsoft, ou usar SQLcl da Oracle e depois precisar usar PGSQL, vai precisar reescrever para padrões abertos as stored procedures e algumas sentenças SQL.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

HMG - Unicode x ANSI

Mensagempor JoséQuintas » 15 Abr 2021 12:50

unicode.png


Uia.

UTF = Unicode Transformation Layer

Eu não sabia disso.

Então realmente o futuro é de 20 anos atrás.
E depois de 20 anos, ainda falamos que será o futuro.

Nota: acabou postando entre minha pesquisa e meu post.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

HMG - Unicode x ANSI

Mensagempor Itamar M. Lins Jr. » 15 Abr 2021 12:52

Olá!
Ou no próprio Harbour que o pessoal fala para usar C(ANSI), pois podem usar um comando, lib, função de um C específico da INTEL ou Embarcadero, pois só vai compilar exclusivamente nesses. Ou no caso do BCC que não reconhece, compíla o código QT coisa que o GCC faz.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Próximo



Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 9 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro