XML em UTF-8
Moderador: Moderadores
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
XML em UTF-8
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.
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.
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
XML em UTF-8
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.
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.
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.
Código: Selecionar todos
REQUEST HB_CODEPAGE_ESWIN
cAnsi := "áéíóú"
cUTF8 := HB_STRTOUTF8(cAnsi, "ESWIN")
HB_MemoWrit ("ejemplo.txt", cUTF8)
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
XML em UTF-8
Bom dia, Claudio.
Obrigado pela ajuda. Estava há uma semana buscando uma solução.
Saudações e bom domingo,
Mario.
Obrigado pela ajuda. Estava há uma semana buscando uma solução.
Saudações e bom domingo,
Mario.
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
XML em UTF-8
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:
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:
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.
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:
Código: Selecionar todos
xAnsi := HB_MEMOREAD(xArqXml)
xUtf8 := HB_STRTOUTF8(xAnsi, "PTISO")
HB_MEMOWRIT(nArqXml,xUtf8)
Código: Selecionar todos
@ 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")
Devo estar fazendo algo errado. Se alguem tiver mais uma dica, agradeço.
Saudações,
Mario.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
XML em UTF-8
Olá Mario,
Com Base nisso:
Com Base nisso:
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.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.
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)
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)
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
XML em UTF-8
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.
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.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
XML em UTF-8
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.
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)
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)
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
XML em UTF-8
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
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 190 vezes
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
XML em UTF-8
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.
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.