Problemas na acentuação no harbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Problemas na acentuação no harbour

Mensagem por Vlademiro »

Pessoal, estou com problemas na acentuação. Faz é tempo que tento resolver sem sucesso.

Seguinte, preciso configurar meu harbour para UTF8, conforme o fonte abaixo :

Código: Selecionar todos

REQUEST HB_CODEPAGE_PTISO
//REQUEST HB_CODEPAGE_PT850 

FUNCTION MAIN()
LOCAL   aOptions := { "Materiais:Grupos:Sub-Grupos:Materiais",;
                      "Ptos de estoque:Centros de estoque" +;
                                     ":Sub-centros de estoque" + ;
                                     ":Locais de estoque" +;
                                     ":Tipos de locais" , ;
                      "Tipos de movimentos:Grupo:Tipos de movimentos",;
                      "Utilitários:Sair" }
LOCAL   nSel  := 1.01
LOCAL   aAttrib

AltD(1)
//  SETMODE( 25,80 )  // Tava deixando lento a inicialização
 HB_CDPSELECT( "UTF8" )
 HB_LANGSELECT('PT')
Agora o problema :

Quando estou no GET (por exemplo) e eu digito : Á é ç ó ou qualquer caractere acentuado, eu consigo VER o caracter CORRETAMENTE, mas uma fração de segundos depois ele se transforma em um coração.

Esse probleminha é chato e aparentemente simples de resolver, mas já tentei de tudo e não consigo

Alguém já passou por isso ?
Qualquer ajuda será bem vinda.

Obrigado.
Editado pela última vez por Pablo César em 27 Jun 2012 10:39, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Problemas na acentuação no harbour

Mensagem por Imatech »

Just try:

Código: Selecionar todos


  REQUEST HB_LANG_PT

  REQUEST HB_CODEPAGE_UTF8
  REQUEST HB_CODEPAGE_UTF8EX

 ...


  HB_LANGSELECT( 'PT' )

  HB_CDPSELECT( "UTF8EX" ) // or: HB_SETCODEPAGE( "UTF8EX" )


M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Problemas na acentuação no harbour

Mensagem por lugab »

Ola, bom dia !

Gostaria de aproveitar o tema do tópico e perguntar se existe algum codigo que roda em xhb que seja capaz de converter um arquivo texto qualquer de , digamos, N linhas de 80 colunas, transformando esse arquivo em UTF8.

Não acredito que haja uma função capaz de fazer a conversão vapt-vupt, no arquivo como um todo, e sim linha a linha.

Acho q devo Jogar cada linha numa variavel de memória, converter a varável e gravar as variaveis no novo arquivo. Se for realmente assim, então eu só preciso saber os comandos de conversão para cada linha e sem seguida como gravar aqueles 4 caracteres malucos no início do arquivo..

É que eu uso um programa externo pra fazer isso e mais cedo ou mais tarde surgirá uma nova versão de windows e esse bicho vai parar de funcionar...
lugab
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Problemas na acentuação no harbour

Mensagem por Vlademiro »

Valeu mesmo

Funcionou perfeitamente !. :))
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Problemas na acentuação no harbour

Mensagem por Imatech »

Olá Lugab !

Acredito que exista hb_translate no xH

Código: Selecionar todos


hb_translate( cString, "UTF8", "PLWIN")   //  string from UTF-8 to ANSI

hb_translate( cString, "PLWIN", "UTF8")   //  reverse

Caso contrario irá encontrar vasto material para essa tarefa no projeto QT4xHB
http://www.magsoftinfo.com.br/blogdomag/?tag=qt4xhb
http://www.marcosgambeta.wordpress.com/ ... -graficas/
http://www.harbourqt.wordpress.com
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Problemas na acentuação no harbour

Mensagem por lucimauro »

Boa noite. a todos

Eu tambem to com o memso problema na acentuacao que aparece depois fica caracteres estranhos.
ai coloquei REQUEST HB_SETCODEPAGE_UTF8EX so que dar erro, sera que to faltando algo?
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Problemas na acentuação no harbour

Mensagem por Toledo »

lucimauro escreveu:ai coloquei REQUEST HB_SETCODEPAGE_UTF8EX so que dar erro
O correto é...
jovemxxx escreveu:REQUEST HB_CODEPAGE_UTF8EX
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Problemas na acentuação no harbour

Mensagem por lucimauro »

Obrigado por responder Toledo;

Eu errei na hora de escreve aqui, na funcao que esta no meu codigo é:
REQUEST HB_CODEPAGE_UTF8EX ( undefined reference ) este é o erro que ta dando.

Estou compilando com a mingw.
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Problemas na acentuação no harbour

Mensagem por lugab »

Pessoal, e quando o compilador for XHB, em vez de
REQUEST HB_CODEPAGE_UTF8EX
usa o que ?
lugab
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Problemas na acentuação no harbour

Mensagem por Imatech »

Olá Lucimauro !

Esta usando que versão do Harbour ?
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Problemas na acentuação no harbour

Mensagem por Imatech »

Olá Lugab !


UTF-8 é um tipo de formato especial compatível com ASCII, para a representação de qualquer caractere, em qualquer idioma. Acho que resolveram adotar esse padrão tendo em vista os caracteres acentuados que existem no nosso idioma. Sendo assim, um caractere acentuado teria não apenas 1, mas 2 bytes. Mas UTF-8 pode ter, salvo engano, até 4 bytes.

No xHarbour 1.1.0 foi criada a função para converter texto puro para UTF8:

HB_StrToUTF8( cStr ) e HB_UTF8ToStr( cUtf8 )

Ex:

Código: Selecionar todos

REQUEST HB_CODEPAGE_PTISO
REQUEST HB_CODEPAGE_PT850

Proc main()

local cStr, cAsc, cUtf8

HB_SETCODEPAGE( "PT850" )

cStr := "Isto é um teste de conversão."

cUtf8 := hb_strToUTF8( cStr )

cAsc := hb_UTF8ToStr( cUtf8 )

? cStr
? cUtf8
? cAsc


Créditos: Farley (Forum FiveWin)
Editado pela última vez por Pablo César em 27 Jun 2012 12:24, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Problemas na acentuação no harbour

Mensagem por lugab »

Legal, Ronaldo, gostei. Essa função converte linha a linha, e é fácil, sem mistérios

Entretanto, salvo engano,os arquivos padrão UTF8 aprsentam uma série de 4 (?) caracteres
malucos que são gravados no começo do arquivo, antes da primeira linha, e o arquivo que resulta das linhas convertidas (uma a uma) não apresenta essas 4 tranqueiras

Ja convertendo o arquivo inteiro pelo programa externo STR2UTF8.EXE as tranqueiras aparecem e o programa do sefaz lê numa boa...

Vou submeter o convertido linha-a-linha , pra ver o comportamento do programa do sefaz.
lugab
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problemas na acentuação no harbour

Mensagem por JoséQuintas »

Fui pelo lado prático: bloqueio qualquer caractere diferente no sistema.
Pra nota fiscal eletrônica, por enquanto só converti o & (ê comercial, ou macro do clipper).
Tá autorizando tudo numa boa na Fazenda, sendo que o Xml é direto do sistema.
Complicar pra ter mais problemas, melhor bloquear de uma vez, que funciona sempre.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder