• HomePagina Inicial
  • Blog Mis cosillas
  • Portfolio Mis trabajos
  • Acerca deeste blog y su autor
    • Sobre Mi 
    • Oridoki 
  • ContactarFormulario
  • Categorias

    • Blog
      • Control de Versiones
        • GIT
      • Diseño
      • Frameworks
        • CakePHP
        • CodeIgniter
      • JavaScript
        • EXT JS
        • JQuery
      • Magento
      • Maquetación
        • CSS
        • HTML
      • MiniCodes
      • MySQL
      • PHP
      • Proyectos
      • Sistemas
      • TextMate
      • Varios
      • Wordpress
    • Portfolio

Javascript – urlencode

Posted by Adrià Cidre Categories: Blog, PHP

Hay veces en que la función de javascript escape() no es suficiente, como por ejemplo si hay que codificar ‘?’. No sé exactamente cuando ni donde encontré esta función que imita el urldecode de PHP pero migrada a javascript, espero que os sea tan útil como a mi.


function urlencode( str ) {

    var histogram = {}, histogram_r = {}, code = 0, tmp_arr = [];
    var ret = str.toString();

    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };

    // The histogram is identical to the one in urldecode.
    histogram['!']   = '%21';
    histogram['%20'] = '+';

    // Begin with encodeURIComponent, which most resembles PHP's encoding functions
    ret = encodeURIComponent(ret);

    for (search in histogram) {
        replace = histogram[search];
        ret = replacer(search, replace, ret) // Custom replace. No regexing
    }

    // Uppercase for full PHP compatibility
    return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
        return "%"+m2.toUpperCase();
    });

    return ret;
}

Share This Post!

Subscribe to our RSS feed. Tweet this! StumbleUpon Reddit Digg This! Bookmark on Delicious Share on Facebook

5 Responses to Javascript – urlencode

  1. Me ha sido muy útil.

    Muchas gracias!

    Posted on 08/10/2009 at 12:48
    |
    Francisco says
  2. Muchas gracias! he usado la funcion en http://www.niavatar.com (versión china de http://www.armatudisplay.com), porque la que tenía no codificada caracteres chinos.

    Un saludo!!

    Posted on 15/11/2009 at 00:17
    |
    Pablo Reyes says
  3. muy util
    gracias

    Posted on 28/01/2010 at 10:20
    |
    salvacur says
  4. Diosss, la de problemas que he tenido hasta que he dado con esta función..
    I love you

    PD: fuck JS

    Posted on 03/03/2010 at 19:51
    |
    Paco says
  5. que buena gracias

    Posted on 08/06/2011 at 19:46
    |
    alberto says

Deja un comentario Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Search our website

  • Inicio
  • Blog
  • Consultor Web
  • Contactar
  • E-Commerce
  • Oridoki
  • Outsourcing
  • Portfolio
  • Sobre Mi
  • Social Media
© Adrià  Cidre Jugo - 2011