Página 1 de 2
Json
Enviado: 11 Ago 2020 11:30
por marsp
Bom dia,
Estou importando um arquivo em Json, quando tento tirar os acentos, de um nome "José João Gonçalves" com uma funçao que usamos a muito tempo e esta funcionando, fica assim "JosA JoA o GonA alves", se tentar novamente o resultado fica sempre diferente. Alguem tem uma solução para isto.
obrigado
Json
Enviado: 11 Ago 2020 13:43
por Vlademiro
O arquivo pode estar no formato utf8. Tem uma função que converte utf8 para ansi. Aqui no fórum tem alguns exemplos. Vou ver se tenho algum aqui.
Json
Enviado: 11 Ago 2020 13:46
por Vlademiro
cAsc := hb_UTF8ToStr( cStr )
SuaFuncao( cAsc )
Json
Enviado: 11 Ago 2020 14:15
por JoséQuintas
Só pra reforçar:
NÃO existe um padrão em comunicação.
Pode funcionar num webservice de um jeito, e de outra forma em outro.
Pode precisar fazer o trabalho de conversão diferente pra cada webservice.
Fazer o que....
Poderiam aumentar a tabela ascii de 255 para 65536, mas isso significaria dobrar o tamanho de tudo, e mesmo assim poderia acabar não sendo suficiente.
Por enquanto inventaram o UTF8, que tem tamanho variável, e usa mais caracteres só aonde precisa.
Mesmo assim não se engane:
A tabela ascii continua com 255 caracteres.
Codepage diferente tem caractere diferente.
o UTF-8 tem todas juntas e ainda mais.
A conversão só vai ser 100% funcional se o caractere UTF-8 existir na codepage em uso.
Elementar:
Se a tabela ascii consegue representar 255 caracteres, mas o UTF-8 consegue representar milhares de caracteres... com certeza muitos deles não tem correspondência.
Vai ser tentativa e erro, e ver o que acontece.
Json
Enviado: 11 Ago 2020 14:36
por Vlademiro
Pois é.
Eu procuro sempre dar uma resposta curta, mas realmente as coisas são do jeito que vc acabou de descrever. Antigamente era só o programa executável. Agora temos webservice, banco de dados, outros aplicativos, páginas HTML, etc. Cada parte com o seu padrão de codificação. O Utf8 veio para unificar, e o trabalho já está adiantado, mas sempre vai ter aplicativos com codificação diferente. E ainda tem a codificação do editor que usamos para programar. O nosso papel é saber a codificação de cada uma dessas partes e converter quando necessário.
Json
Enviado: 11 Ago 2020 15:43
por marsp
Vlademiro e José Quintas,
Muito obrigado pela atenção, vou testar.
Json
Enviado: 11 Ago 2020 16:28
por fladimir
Tenta hb_UTF8ToStr() e se ainda precisar de mais uma depois depois win_ANSITOOEM
Json
Enviado: 11 Ago 2020 16:40
por marsp
Voces teriam esta funçao em xHarbour
Json
Enviado: 11 Ago 2020 21:41
por fladimir
Não sei como seria, talvez algum outro colega.
Json
Enviado: 12 Ago 2020 14:49
por JoséQuintas
Vlademiro escreveu:O Utf8 veio para unificar, e o trabalho já está adiantado
Se pensar direito....
UTF8 é pra representar todas as codepages ao mesmo tempo.
Você poderia cadastrar alguém da Rússia, China, Japão, Brasil, etc. no seu aplicativo, usando a codepage de origem do usuário.
Legal, jóia, lindo.....
Mas na hora de gerar pro banco, que só aceita os tradicionais, nenhuma conversão vai dar jeito.
Conclusão:
Mexeram, mexeram, mexeram.... e continua tudo a mesma coisa kkkk
Apenas trouxe mais trabalho para os aplicativos simples.
A nossa sorte é que as linguagens de programação continuam sendo em inglês, senão fud.... tudo.
Json
Enviado: 12 Ago 2020 15:03
por Vlademiro
O banco utf8 aceita qualquer caractere utf8. Todos os bancos modernos já vem com utf8 como padrão. O que eu disse antes é que o desenvolvedor sempre vai ter que se deparar com codificações diferentes. Tem muito aplicativo que não trabalha com utf8 mas na hora que precisa, ele converte de/para utf8.
Agora tudo converge para o padrão utf8. Os novos aplicativos já surgem nesse mundo. Mesmo que vc nunca vá vender pra China, os bancos modernos já lhe direcionam para utf8. É só fazer um teste. A maioria dos novos clientes de bancos de dados já sugerem utf8, o html5 tb, até os editores.
Json
Enviado: 12 Ago 2020 15:05
por Vlademiro
Não sei de que banco vc está falando, que só aceita tradicionais. Só se vc está escolhendo trabalhar assim.
Json
Enviado: 12 Ago 2020 16:14
por JoséQuintas
Vlademiro escreveu:Não sei de que banco vc está falando, que só aceita tradicionais. Só se vc está escolhendo trabalhar assim.
Ainda não entendeu.
UTF8... ok... vai aceitar José com acento.
O aplicativo.... ok, vai aceitar José com acento.
o banco.... NÃO vai aceitar José com acento.
Nesse caso não se trata de codepage, UTF-8, ou outra coisa qualquer, o banco NÃO aceita.
Na espanha, se não me engano tem N com acento.
No UTF-8 aceita N com acento.
Na codepage do Brasil NÃO aceita N com acento, não tem equivalente.
E no banco.. menos ainda.
Aí pergunto: No que ajudou gravar o N com acento? só pra tela ficar certa? só pra internet ficar certa?
E o resto? como fica?
UTF-8 aceita qualquer coisa ok, mas o resto não.
Json
Enviado: 12 Ago 2020 16:34
por Vlademiro
De que banco vc está falando ?
Se for banco de dados todos os atuais aceitam e até colocam como padrão.
Se for tudo utf8 não tem problema.
Json
Enviado: 12 Ago 2020 19:17
por Itamar M. Lins Jr.
Ola!
De que banco vc está falando ?
Basta usar UTF8 ou UTF8EX no caso dos acentos no HB32/HB34
ES850, PTISO, ANSI etc... isso tudo é velharia. UTF/Unicode veio para substituir.
Entendi o Vlademiro, mas não entendi o José Quintas.
Saudações,
Itamar M. Lins Jr.