Programmers Notepad.
Ou é ANSI ou UTF-8.
Como ANSI tem codepage, suponho que use a mesma do Windows em uso, no meu caso PT-BR.
PNotepad ou bloco de notas.
As letras acentuadas estão idênticas.
No aplicativo PTISO, tudo idêntico.
MySQL idem.
Sei lá...
Tudo compatível.
Outra codepage pra que ?
Windows 10.
A Microsoft anda alterando EDIT e NOTEPAD pra outros formatos.
Aproveita enquanto tem referência pra acertar isso.
Quer conferir a codepage do programa ?
O que aparecer na tela é o que vai poder usar no fonte.
Essa WVT tá bagunçando as coisas ?
Troque pra WVG
Sei lá porque tem fonte que usa isto
Será harbour ? será compilador C ? Será WVT ? Será o raio que o parta ?
Sei lá...
Baixe o Programmers Notepad, use como ANSI.
Edite o fonte.
Compile com WVG.
Saiu certo ?
Agora troque pra WVT.
Saiu certo ? se não saiu troque pra WVG.
Se saiu certo, agora vá no notepad++
Veja se alguma codepage serve
Saiu certo ? se não saiu troque pra PNotepad.
Se com nenhuma funciona, decida o que vai fazer.
Ou usa CHR() e não o caractere direto, ou sei lá o que.
Use o harbour, filtre os caracteres do fonte pra chegar nos que dão problema:
Código: Selecionar todos
REQUEST HB_CODEPAGE_PTISO
#include "hbgtinfo.ch"
#include "set.ch"
PROCEDURE Main
LOCAL cLetra
SetMode(33,100)
CLS
SET( _SET_CODEPAGE, "PTISO" )
cTexto := MemoRead( "fonte.prg" )
FOR EACH cLetra IN cTexto
DO CASE
CASE cLetra $ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
CASE cLetra $ "abcdefghijklmnopqrstuvwxyz"
CASE cLetra == Chr(13)
CASE cLetra == Chr(10)
CASE cLetra $ "()[]+-,.0123456789"
OTHERWISE
? Asc( cLetra ), cLetra, Substr( cTexto, Max( 1, cLetra:__EnumIndex() - 10 ), 20 )
ENDCASE
NEXT
Inkey(0)
RETURN
Vai filtrando até só sobrarem os caracteres especiais.
Veja se a letra da tela bate com o que está no fonte.
O pipino é seu, no seu ambiente, com as suas ferramentas.
Use suas ferramentas pra descobrir sobre o pipino.
Se não resolver com as suas ferramentas.... troque de ferramenta.
E compile esse fonte de teste com -w3 -es2 pra garantir que os #defines estão certos.
Com variável errada, dá resultado errado.