Forem

Cover image for function decodes any %## encoding in the given string
Carlos Alberto
Carlos Alberto

Posted on

2 2

function decodes any %## encoding in the given string

function to convert a string with special characters to url format. This function decodes any %## encoding in the given string. Plus symbols ('+') are decoded to a space character.

Use it when you need to get a utf-8 string to be handled lik a URL

function to_utf8( $string ) {
    // From http://w3.org/International/questions/qa-forms-utf-8.html
        if ( preg_match('%^(?:
          [\x09\x0A\x0D\x20-\x7E]            # ASCII
        | [\xC2-\xDF][\x80-\xBF]             # non-overlong 2-byte
        | \xE0[\xA0-\xBF][\x80-\xBF]         # excluding overlongs
        | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # straight 3-byte
        | \xED[\x80-\x9F][\x80-\xBF]         # excluding surrogates
        | \xF0[\x90-\xBF][\x80-\xBF]{2}      # planes 1-3
        | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
        | \xF4[\x80-\x8F][\x80-\xBF]{2}      # plane 16
    )*$%xs', $string) ) {
            return $string;
        } else {
            return iconv( 'CP1252', 'UTF-8', $string);
        }
    }
Enter fullscreen mode Exit fullscreen mode
👋 One new thing before you go

Are you investing in your dev career?

We have created a membership program that helps cap your costs so you can build and experiment for less. And we currently have early-bird pricing which makes it an even better value! 🐥

Just one of many great perks of being part of the network ❤️

Top comments (0)

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit