Comunidad de diseño web y desarrollo en internet online

Nuevo método unescape( String ):String en AS3.0

Citar            
MensajeEscrito el 23 Sep 2008 06:08 pm
¡Hola a tod@s!
¿Qué tal les va?

Bueno, hoy me encuentro haciendo una de las muchas migraciones que me toca hacer de Flash 8 con AS2.0 a Flash 9 con AS3.0. El proceso es lento pero los resultados más o menos son mejores; a parte, parece que tener una web actualizada en cuanto a la versión del AS viene mejor para ofrecer la mejor experiencia a los usuarios y utilizar todas las funcionalidades que por fin nos da Flash.

Pero entre muchas de las cosas que me he ido encontrando, hoy una que me ha intrigado. Os pongo en situación:
Hasta Flash 8 nunca he tenido mayor problema en descodificar (unescape) una cadena, salvo el ya conocido problema que surge cuando el texto está codificado hexadecimalmente en UNICODE o UTF... que se resuelve con el System.usingCodePage = true o false. Esto, por si os interesa produce este efecto:

System.useCodepage = false; // por defecto está en false.
trace(escape("á")); // produce %C3%A1
System.useCodepage = true;
trace(escape("á")); // produce %E1

Pero en cambio, el carácter "+" tiene la misma codificación (%2B) tanto en UNICODE como en UTF, al igual que el espacio, que tiene la %20 en los dos formatos. Eso lo cuento para situaros..., yo a lo que voy a es a las decodificaciones. Pues bien, hasta entonces, el unescape(string) funcionaba, además de con formato hexadecimal, con también las codificaciones que usa php. Para flash, por ejemplo (o igual es el único carácter que se distingue, esa es mi pregunta) el '+' se descodifica como un espacio, y el %20 también.

Por lo visto, los chicos de Adobe han decidido que solo se descodifcan los caracteres que están en formato hexadecimal, es decir, con el % delante, y el '+' sigue siendo '+' después de pasarle por un unescape.

Mi pregunta es la siguiente:

¿Qué más caracteres se han reconsiderado? :?

PD.
Como solución a este problema, en vez de usar la función unesacape(String):String estoy usando una extensión de la misma así:

function nuevaunescape(cadena:String):String{
return unescape( cadena.split("+").join("%20") );
}

Por enWILLYado

30 de clabLevel



Genero:Masculino  

2004

msie7
Citar            
MensajeEscrito el 24 Sep 2008 01:58 am
Lo de escape, unescape y System.useCodepage no es necesario si usas UTF8 para guardar tus datos (esto es así desde Flash MX)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Sep 2008 11:49 pm
Gracias Jorge. Yo también recomiendo el uso de la codificación UTF8, ya que es fácilmente reconversible a cualquier formato. Pero me gustaría que alguna persona, si lo sabe o tiene tiempo para investigarlo, responda a la pregunta que realizo:

¿Qué más caracteres se han reconsiderado? :?

¡Saludos!

Por enWILLYado

30 de clabLevel



Genero:Masculino  

2004

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.