Converter (Wide)String -gt; Hexadecimal

Delphi

05/05/2006

pessoal, estou tentando converter uma URL (Tipo WideString) para uma URL codificada que pode ser utilizada em computadores sem suporte a caracteres unicode. tenho uma página hospedada cujo nome do arquivo está escrito em japonês. Se eu pego a url completa do arquivo e digito no InternetExplorer ele interpreta o símbolo japonês e converte para algo que eu achava ser hexadecimal.

Abaixo, um exemplo da URL original:


Agora, se eu copiar essa url e colar no internet explorer, ele abre a página trocando o caracter japonês para o que eu achava ser, como eu disse, o valor hexadecimal correspondente. Veja abaixo:


O que eu quero fazer é pegar uma variável WideString contendo a url com o caracter japonês e fazer a conversão que o internet explorer fez, gerando uma Ansi String. Pude verificar que executar um Ord no símbolo japonês retorna o valor correto (20908). Mas se eu rodar IntToHex com
esse valor ele me retorna E1AC ao invés do E586AC encontrado pelo Internet Explorer. Isso não é hexadecimal? Como eu posso fazer essa conversão?

Achei algumas funções na internet que trocam em strings, o espaço por ´¬20´ (32 em hex) para poder ser usado em URL´s, mas nenhuma delas aceita WideString como parâmetro...

Ps.: Fiz um teste e converti a WideString para UTF-8 antes de executar o IntToHex. O resultado foi: ¬E5¬2020¬AC, ou seja, mais perto do resultado gerado pelo Internet Explorer... Mas se o UTF-8 não funcionou não sei o que mais pode funcionar...

Alguma idéia?

t+!


Delphi32

Delphi32

Curtidas 0
POSTAR