Já tinha colocado isso no aplicativo, e não lembrava porque.
Aproveitar que olhando o manual do MDFE encontrei lá.
Isso não é no XML inteiro, se refere ao valor colocado em cada campo, entre as tags, aproveitando o exemplo do manual: <xNome>DIAS &. DIAS LTDA</xNome>
Não fazendo isso, é onde acontece erro de assinatura inválida, porque fica por conta da rotina de assinatura/conferência fazer a conversão do jeito que ela quiser.
Caracteres inválidos no XML
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Caracteres inválidos no XML
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/
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/
Caracteres inválidos no XML
É verdade, esse problema ocorre também qdo damos insert ou update em uma tabela do MySQL na web, eu uso as seguintes funções ao construir o comando INSERT por exemplo para a query:
Obs: Não sei pq entro do 'CODE' está com espaçamento duplo de linhas....
Código: Selecionar todos
sql := "INSERT ...etc"
sql += "SET razao_social = " + mysql_escape( Main.Text_RazaoSocial.Value )+ ";"
...
// Minha função
Function mysql_escape(_string)
_string := AllTrim(_string)
_string := mysql_escape_string(_string) // Função da lib "libmysql.dll", essa função faz toda a troca necessária como vc mencionou Zeh
Return TirarAcentos(_string)
/*
Essa função não é eficiente qdo se trata de UTF-8, tenho problemas com acentuação vinda do B.D. MySQL na web (Motor InnoDB, e colação utf8_general_ci), no Harbour alguns caracteres acentuado na web fica estranhos exibidos por exemplo num TextBox e não é pego por essa função.
A saber: uso HMG UNICODE ver 1.1 / HMG 3.4.3 Stable (32 bits), na edição do arquivo prg uso o Notepad++ na formatação 'Codificação em UTF-8', mesmo assim qdo vem nomes com "çã" a coisa fica feia...
*/
Function TirarAcentos(cTexto)
cTexto := HB_UTF8STRTRAN(cTexto, "Ã", "A")
cTexto := HB_UTF8STRTRAN(cTexto, "Á", "A")
cTexto := HB_UTF8STRTRAN(cTexto, "À", "A")
cTexto := HB_UTF8STRTRAN(cTexto, "Â", "A")
cTexto := HB_UTF8STRTRAN(cTexto, "ã", "a")
cTexto := HB_UTF8STRTRAN(cTexto, "á", "a")
cTexto := HB_UTF8STRTRAN(cTexto, "à", "a")
cTexto := HB_UTF8STRTRAN(cTexto, "â", "a")
cTexto := HB_UTF8STRTRAN(cTexto, "Ä", "A")
cTexto := HB_UTF8STRTRAN(cTexto, "ä", "a")
cTexto := HB_UTF8STRTRAN(cTexto, "É", "A")
cTexto := HB_UTF8STRTRAN(cTexto, "È", "E")
cTexto := HB_UTF8STRTRAN(cTexto, "Ê", "E")
cTexto := HB_UTF8STRTRAN(cTexto, "é", "E")
cTexto := HB_UTF8STRTRAN(cTexto, "è", "e")
cTexto := HB_UTF8STRTRAN(cTexto, "ê", "e")
cTexto := HB_UTF8STRTRAN(cTexto, "Ë", "E")
cTexto := HB_UTF8STRTRAN(cTexto, "ë", "e")
cTexto := HB_UTF8STRTRAN(cTexto, "Í", "I")
cTexto := HB_UTF8STRTRAN(cTexto, "Ì", "I")
cTexto := HB_UTF8STRTRAN(cTexto, "Î", "I")
cTexto := HB_UTF8STRTRAN(cTexto, "í", "i")
cTexto := HB_UTF8STRTRAN(cTexto, "ì", "i")
cTexto := HB_UTF8STRTRAN(cTexto, "î", "i")
cTexto := HB_UTF8STRTRAN(cTexto, "Ï", "I")
cTexto := HB_UTF8STRTRAN(cTexto, "ï", "i")
cTexto := HB_UTF8STRTRAN(cTexto, "Õ", "o")
cTexto := HB_UTF8STRTRAN(cTexto, "Ó", "o")
cTexto := HB_UTF8STRTRAN(cTexto, "Ò", "o")
cTexto := HB_UTF8STRTRAN(cTexto, "Ô", "o")
cTexto := HB_UTF8STRTRAN(cTexto, "õ", "o")
cTexto := HB_UTF8STRTRAN(cTexto, "ó", "o")
cTexto := HB_UTF8STRTRAN(cTexto, "ò", "o")
cTexto := HB_UTF8STRTRAN(cTexto, "ô", "o")
cTexto := HB_UTF8STRTRAN(cTexto, "Ö", "O")
cTexto := HB_UTF8STRTRAN(cTexto, "ö", "o")
cTexto := HB_UTF8STRTRAN(cTexto, "Ú", "U")
cTexto := HB_UTF8STRTRAN(cTexto, "Ù", "U")
cTexto := HB_UTF8STRTRAN(cTexto, "Û", "U")
cTexto := HB_UTF8STRTRAN(cTexto, "ú", "U")
cTexto := HB_UTF8STRTRAN(cTexto, "ù", "U")
cTexto := HB_UTF8STRTRAN(cTexto, "û", "U")
cTexto := HB_UTF8STRTRAN(cTexto, "Ü", "U")
cTexto := HB_UTF8STRTRAN(cTexto, "ü", "u")
cTexto := HB_UTF8STRTRAN(cTexto, "Ý", "Y")
cTexto := HB_UTF8STRTRAN(cTexto, "ý", "y")
cTexto := HB_UTF8STRTRAN(cTexto, "ÿ", "y")
cTexto := HB_UTF8STRTRAN(cTexto, "Ç", "C")
cTexto := HB_UTF8STRTRAN(cTexto, "ç", "c")
cTexto := HB_UTF8STRTRAN(cTexto, "º", "o.")
cTexto := HB_UTF8STRTRAN(cTexto, "", "A")
cTexto := HB_UTF8STRTRAN(cTexto, "", "a")
cTexto := HB_UTF8STRTRAN( cTexto, Chr(195) + Chr(173), "i" ) // i acentuado minusculo
cTexto := HB_UTF8STRTRAN( cTexto, Chr(195) + Chr(135), "C" ) // c cedilha maiusculo
cTexto := HB_UTF8STRTRAN( cTexto, Chr(195) + Chr(141), "I" ) // i acentuado maiusculo
cTexto := HB_UTF8STRTRAN( cTexto, Chr(195) + Chr(163), "a" ) // a acentuado minusculo
cTexto := HB_UTF8STRTRAN( cTexto, Chr(195) + Chr(167), "c" ) // c acentuado minusculo
cTexto := HB_UTF8STRTRAN( cTexto, Chr(195) + Chr(161), "a" ) // a acentuado minusculo
cTexto := HB_UTF8STRTRAN( cTexto, Chr(195) + Chr(131), "A" ) // a acentuado maiusculo
cTexto := HB_UTF8STRTRAN( cTexto, Chr(194) + Chr(186), "o." ) // numero simbolo
// so pra corrigir no MySql (copiei de um exemplo do Zeh)
cTexto := HB_UTF8STRTRAN( cTexto, "+" + Chr(129), "A" )
cTexto := HB_UTF8STRTRAN( cTexto, "+" + Chr(137), "E" )
cTexto := HB_UTF8STRTRAN( cTexto, "+" + Chr(131), "A" )
cTexto := HB_UTF8STRTRAN( cTexto, "+" + Chr(135), "C" )
cTexto := HB_UTF8STRTRAN( cTexto, "?" + Chr(167), "c" )
cTexto := HB_UTF8STRTRAN( cTexto, "?" + Chr(163), "a" )
cTexto := HB_UTF8STRTRAN( cTexto, "?" + Chr(173), "i" )
cTexto := HB_UTF8STRTRAN( cTexto, "?" + Chr(131), "A" )
cTexto := HB_UTF8STRTRAN( cTexto, "?" + Chr(161), "a" )
cTexto := HB_UTF8STRTRAN( cTexto, "?" + Chr(141), "I" )
cTexto := HB_UTF8STRTRAN( cTexto, "?" + Chr(135), "C" )
cTexto := HB_UTF8STRTRAN( cTexto, Chr(195) + Chr(156), "a" )
cTexto := HB_UTF8STRTRAN( cTexto, Chr(195) + Chr(159), "A" )
cTexto := HB_UTF8STRTRAN( cTexto, "?" + Chr(129), "A" )
cTexto := HB_UTF8STRTRAN( cTexto, "?" + Chr(137), "E" )
cTexto := HB_UTF8STRTRAN( cTexto, Chr(195) + "?", "C" )
cTexto := HB_UTF8STRTRAN( cTexto, "?" + Chr(149), "O" )
cTexto := HB_UTF8STRTRAN( cTexto, "?" + Chr(154), "U" )
cTexto := HB_UTF8STRTRAN( cTexto, "+" + Chr(170), "o" )
cTexto := HB_UTF8STRTRAN( cTexto, "?" + Chr(128), "A" )
cTexto := HB_UTF8STRTRAN( cTexto, Chr(195) + Chr(166), "e" )
cTexto := HB_UTF8STRTRAN( cTexto, Chr(135) + Chr(227), "ca" )
cTexto := HB_UTF8STRTRAN( cTexto, "n" + Chr(227), "na" )
cTexto := HB_UTF8STRTRAN( cTexto, Chr(162), "o" )
Return (cTexto)
Nilton Medeiros
nilton@sistrom.com.br
nilton@sistrom.com.br
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Caracteres inválidos no XML
Aqui também acontece isso. Provavelmente está usando Windows 10 e Edge.Obs: Não sei pq entro do 'CODE' está com espaçamento duplo de linhas....
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/
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/
