Conversão UTF8 para outro Código de página.

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

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8029
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 2 vezes
Curtiram: 1 vez

Conversão UTF8 para outro Código de página.

Mensagem por Itamar M. Lins Jr. »

Olá!
Os nomes dos arquivo estão acentuados, usando UTF8.
Não estou conseguindo converter para PTISO.
Consigo selecionar, abrir.
Por exemplo o nome do arquivo é "Certificado rádio UHF.pdf"
Não consigo de forma nenhuma(até gora) usando hb_UTF8toStr(), hb_Translate().
Alguma coisa esquisita com esse "á" pq outros estão ok. Só esse infeliz que não passa. Mudei o código mas até agora nada.
Fica assim: Certificado ra´dio UHF.pdf, Certificado ra?dio UDF.pdf...Salvou assim: Certificado raÌdio.pdf

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8029
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 2 vezes
Curtiram: 1 vez

Conversão UTF8 para outro Código de página.

Mensagem por Itamar M. Lins Jr. »

Olá!
Depois de muito examinar, cheguei a seguinte conclusão. Sabe-se lá qual é a pagina de código que o povo usa para dar nome aos arquivos.
Windows, WORD, ADOBE... etc... Whatsapp.
Eu sei que o mesmo nome é aceito. Olha a doidice.
Certificado rádio UHF.pdf -> esse que veio, o "á" só Deus sabe que pagina de código foi usada. Ai eu renomeio usando o Explorer com o mesmo nome e funciona.
No explorer usa qual ? WINDOWS ANSI ? provavelmente e o nome é UTF8...não sei 100%. Mas não tem como o Harbour converter corretamente.
Mas se tudo foi feito no Windows, ele mesmo fez a bagunça.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Conversão UTF8 para outro Código de página.

Mensagem por JoséQuintas »

Já peguei muito isso na época que baixava muito MP3.
O próprio Windows não reconhecia o que ele trazia.
Nunca fiz testes.

Talvez pegar o nome com directory() e pegar o ASC.
Vai saber se tem caracteres que visualmente parecem o mesmo.
Lembrando que caracteres que não existem numa codepage podem ser substituídos por algo "não imprimível", tá lá mas não mostra, e é aí que a coisa pega, porque susbtitui o caractere.
Num teste doido, talvez um array com todas as codepages e testar uma por uma.
Talvez com COPY ao invés de RENAME, pra manter o original e poder fazer vários testes.
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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/
Kapiaba
Colaborador
Colaborador
Mensagens: 1912
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Conversão UTF8 para outro Código de página.

Mensagem por Kapiaba »

Como você faz? Assim? Como você chama o UNICODE no HARBOUR?

Código: Selecionar todos

EXTERNAL HB_LANG_PT, HB_CODEPAGE_PTISO, HB_CODEPAGE_PT850

FUNCTION...

   ...

   HB_LANGSELECT( 'PT' )
   HB_SETCODEPAGE( "UTF8" )
   HB_CDPSELECT( "UTF8EX" )
   HB_SETCODEPAGE( "PT850" )
   HB_CDPSELECT( "PTISO" )

RETURN...
Regards, saludos.
Responder