por JoséQuintas » 29 Nov 2016 20:37
Primeiro ponto, importantÃssimo: muita calma nessa hora.
Está entrando em uma área delicada.
Até hoje achava que existia uma única tabela ASCII, que o Chr(65) corresponde à letra A, que Asc( "A" ) é 65, e que funciona assim pra tudo que é caractere no computador.
Também até hoje achava que a diferença entre caracteres era entre DOS e Windows.
Pois é... não é assim que funciona.
Existe uma tabela ASCII pra cada idioma existente: Inglês, Português de Portugal, Português do Brasil, e muitas outras.
A janela de prompt, chamada de DOS, usa tabela em inglês.
O Windows, usa tabela em português-Brasil (no nosso caso).
E tem outras mais.
Antes de adotar uma solução precisa saber que:
- O que gravou nos seus bancos de dados, usou a tabela em inglês
- Se seu aplicativo estiver em modo console, o Windows vai usar a tabela em inglês pra TELA
- Se seu aplicativo usar tela Windows, o Windows vai usar a tabela em português-Brasil pra TELA
- Caracteres especiais do seu aplicativo, estarão usando tabela em inglês
E mais outra: SEU FONTE
Vai ter que usar um editor de textos compatÃvel, seja inglês ou português-Brasil.
O que usei foi o seguinte: português-Brasil pra tudo, e tela GTWVG - Windows.
E não permito acentuação por parte do usuário, pra não criar mais problemas.
A partir daÃ, acertar diferenças de DBFs, telas, relatórios, etc. usando um editor de textos que trabalhe em português-Brasil.
Pode usar funções de conversão, mas é bom entender direito tudo que vai precisar ser alterado.
Isso é chamado de CODEPAGE.
Isso existe desde os tempos do DOS, a gente alterava isso usando o COUNTRY.SYS
O Clipper também tinha opção de escolher codepage, mas pelo menos eu NUNCA usei isso.
Sem falar que tem também o UTF-8, que não tem nada a ver com as anteriores.
Mas gera novas complicações, porque uma letra pode ser formada por até 6 caracteres juntos.
Bem vindo ao mundo da CODEPAGE.
É decidir o que vai usar, e ir em frente.
Acho que usando português-Brasil, que é a mesma do Windows, pode evitar complicações.
Se alguém souber de algo que eu desconheça, é só avisar.
Nota: Talvez tenha que usar uma LIB Windows, já que o Harbour é Windows, mesmo que não use recursos gráficos.
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/