REVELAR

Fórum Converter (Wide)String -gt; Hexadecimal #320710

05/05/2006

0

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:

[img:2c7a63607a]http://img184.imageshack.us/img184/9442/urlantes8ql.jpg[/img:2c7a63607a]

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:

[img:2c7a63607a]http://img357.imageshack.us/img357/2294/urldepois9rv.jpg[/img:2c7a63607a]

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

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar