Veja se ajuda:
O problema de caixas (boxes/molduras) e caracteres especiais (acentuação, linhas gráficas) não aparecerem corretamente em aplicações xHarbour no Windows 11 geralmente é causado por incompatibilidade de Code Page (codificação de caracteres) entre o console do Windows e a aplicação xHarbour, ou pelo uso de fontes que não suportam caracteres gráficos antigos (OEM).
Aqui estão os passos para resolver esse problema, focando no ambiente console do Windows:
1. Alterar a Fonte do Prompt de Comando (Windows 11)
As fontes padrão do Windows 11 muitas vezes não incluem os caracteres gráficos do Clipper/xHarbour (OEM CP 437/850).
Abra o seu sistema xHarbour.
Clique com o botão direito na barra de título da janela e selecione Propriedades.
Vá na aba Fonte.
Altere a fonte para Terminal ou Raster Fonts (Fontes Raster). Essas fontes suportam as linhas e cantos de boxes.
Nota: Evite fontes TrueType como "Consolas" ou "Lucida Console" se elas não renderizarem corretamente os caracteres.
2. Ajustar o Code Page no Prompt
Antes de rodar o programa, ou dentro do bat/script de inicialização, force o Prompt de Comando a usar a codificação correta.
No prompt, digite: chcp 850 (ou chcp 437) e pressione Enter.
Em seguida, execute seu programa (programa.exe).
Isso força o terminal a interpretar os caracteres gráficos corretamente.
3. Configuração interna no xHarbour
Se as opções acima não resolverem, force a aplicação xHarbour a definir o modo de vídeo e caracteres na inicialização.
Adicione ao seu código:
harbour
Código: Selecionar todos
REQUEST HB_CODEPAGE_PT850 // Ou PTISO, dependendo da sua DBF
PROCEDURE Main()
HB_SETCODEPAGE("PT850")
SetMode(25, 80) // Garante modo 25x80
// ... restante do código
RETURN
4. Usar hb_GtInfo para boxes (Se usar GTWVW)
Se você utiliza a biblioteca gráfica GTWVW para controlar o console:
A GTWVW pode precisar que a codificação do box seja explicitamente definida.
Tente usar hb_GtInfo(HB_GTI_BOXCP, "PT850") no início do programa.
5. Alternativa: Utilizar a fonte "Terminal" + SetMode
Um erro comum no Windows 11 é o redimensionamento automático. Tente forçar o tamanho:
harbour
Código: Selecionar todos
#include "set.ch"
PROCEDURE Main()
SETMODE(25, 80)
// ...
RETURN
Resumo da solução mais eficaz
Geralmente, mudar a fonte para Terminal nas propriedades do prompt de comando e rodar chcp 850 resolve 90% desses casos no Windows