Clipper On Line • Ver Tópico - XML em UTF-8

XML em UTF-8

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

XML em UTF-8

Mensagempor Mario Mesquita » 26 Jul 2013 17:51

Boa tarde amigos.

Estou desenvolvendo um modulo gerador de arquivo XML. Não é a minha primeira vez. Mas dessa vez, tá me dando um problema, pois a entidade que vai receber o arquivo está rejeitando-o me informando que ele está em ANSI e ele o quer em UTF-8.

Eu uso o bom e velho @ SAY pra escrever um arquivo texto com extensão .XML. Sempre deu certo, mas agora com essa fiquei com esse abacaxi.

Buscando arqui no forum, achei um topico em que um colega nosso diz que usou uma variável que se concatena ao arquivo desse modo: xUtf8 := "".

Ainda assim, não deu certo, está sendo rejeitado. Será que não funciona ou isso tem que ser concatenado em todas as linhas geradas? Só o coloquei na primeira linha e editando o arquivo, ele aparece como UTF-8.

Estou errando em algo, com certeza. Quem puder me dar uma dica, desde já agradeço!

Abraço a todos e saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 429
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 6 vezes
Mens.Curtidas: 8 vezes

XML em UTF-8

Mensagempor Claudio Soto » 26 Jul 2013 23:39

Hola Mario.
Talvez este código te pueda ayudar, este ejemplo transforma caracteres en ANSI (codepage español) a UTF-8 y los guarda en archivo.
Saludos,
Claudio.
REQUEST HB_CODEPAGE_ESWIN

cAnsi := "áéíóú"
cUTF8 := HB_STRTOUTF8(cAnsi, "ESWIN")

HB_MemoWrit ("ejemplo.txt", cUTF8)

PD: Si no especificas el código de página en el segundo parámetro de HB_STRTOUTF8() la función toma el código de pagina seleccionado en el momento.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 533
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 34 vezes
Mens.Curtidas: 149 vezes

XML em UTF-8

Mensagempor Mario Mesquita » 28 Jul 2013 11:58

Bom dia, Claudio.

Obrigado pela ajuda. Estava há uma semana buscando uma solução.

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

Mario Mesquita
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 429
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 6 vezes
Mens.Curtidas: 8 vezes

XML em UTF-8

Mensagempor Mario Mesquita » 29 Jul 2013 18:49

Boa noite a todos.

Mesmo com a dica do Claudio, não estou conseguindo gerar o arquivo no padrão UTF-8. Ele continua como ANSI.

Como informei, sempre fiz arquivos XML com @ SAY e deu certo. Desta vez, essa exigência de ser UTF-8.

Segui a dica da seguinte forma: Gerei um TXT normalmente, mas convertendo no fim:


xAnsi := HB_MEMOREAD(xArqXml)
xUtf8 := HB_STRTOUTF8(xAnsi, "PTISO")
HB_MEMOWRIT(nArqXml,xUtf8)



Mas não deu certo. Quando edito o arquivo, ele continua como padrão ANSI. Aí tentei usar a função HB_STRTOUTF8() em cada linha gerada:


           @ PROW()+1,0 SAY HB_STRTOUTF8('<AtoCep>', "PTISO")
           @ PROW()+1,0 SAY HB_STRTOUTF8('<TipoAtoCep>'+ALLTRIM(CENSEC->ATO_CEP)+'</TipoAtoCep>', "PTISO")
           @ PROW()+1,0 SAY HB_STRTOUTF8('<NaturezaEscritura>'+ALLTRIM(CENSEC->NAT_ESC)+'</NaturezaEscritura>', "PTISO")
           @ PROW()+1,0 SAY HB_STRTOUTF8('<DataAto>'+xDt+'</DataAto>', "PTISO")
           @ PROW()+1,0 SAY HB_STRTOUTF8('<Livro>'+ALLTRIM(NOTAS->LIVRO)+'</Livro>', "PTISO")



Ainda assim, não deu certo. Quando edito o arquivo, com o bloco de notas persiste a codificação ANSI.

Devo estar fazendo algo errado. Se alguem tiver mais uma dica, agradeço.

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

Mario Mesquita
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 429
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 6 vezes
Mens.Curtidas: 8 vezes

XML em UTF-8

Mensagempor Jairo Maia » 30 Jul 2013 09:56

Olá Mario,

Com Base nisso:
Claudio Soto escreveu:PD: Si no especificas el código de página en el segundo parámetro de HB_STRTOUTF8() la función toma el código de pagina seleccionado en el momento.
Tente usar a função HB_STRTOUTF8() sem o segundo parâmetro, deixando que a função assuma a página de código usada para gerar o arquivo ANSI.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2466
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 307 vezes
Mens.Curtidas: 269 vezes

XML em UTF-8

Mensagempor Mario Mesquita » 01 Ago 2013 10:06

Bom dia a todos!

Jairo, eu tentei fazer dos dois modos. Eu coloquei "REQUEST HB_CODEPAGE_PTISO" para pt-br, e na função usei das duas formas.

Mas continua a ser gerado em ANSI e não em UTF-8.

Muito estranho.

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 429
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 6 vezes
Mens.Curtidas: 8 vezes

XML em UTF-8

Mensagempor Jairo Maia » 01 Ago 2013 12:32

Olá Mario,

Muito estranho mesmo. Tem como você anexar um exemplo do seu arquivo gerado em ANSI? Gostaria de fazer alguns testes, porque deveria converter.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2466
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 307 vezes
Mens.Curtidas: 269 vezes

XML em UTF-8

Mensagempor Mario Mesquita » 01 Ago 2013 14:43

Boa tarde a todos.

Jairo, está no anexo. Como expliquei, estou fazendo como voces sugeriram, mas quando edito o arquivo no Bloco de Notas, ele continua a estar com a codificação ANSI.

Desde já, agradeço o apoio.

Sds,
Mario
Anexos
CEP_1Q_072013.XML
(51.53 KiB) Baixado 141 vezes
Avatar de usuário

Mario Mesquita
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 429
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 6 vezes
Mens.Curtidas: 8 vezes

XML em UTF-8

Mensagempor Claudio Soto » 01 Ago 2013 22:52

Hola Mario.

Proba con:
1) cambiar la primera linea del archivo para:<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2) Usa HB_STRTOUTF8() para transformar a UTF-8 todo el archivo
3) agregale al inicio del archivo: xUtf8 := ""
4) Guardalo con HB_MEMOWRIT()

Saludos,
Claudio.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 533
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 34 vezes
Mens.Curtidas: 149 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 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