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: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 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: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 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: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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, 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/
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
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