KitzKikz  KitzKikz: PhpUnicodeToUtf8   RecentChanges 
 PopularPages 
 SearchPages 
 Home | Trail - PhpUnicodeToUtf8
 

  !!!Convert Unicode Escaped String to PHP String

The various ["Google API" http://code.google.com/apis/ajax/] calls return JSON strings containing things like "\u003c". These are escape sequences meant to be converted into single Unicode characters. Javascript does this automatically. PHP does not. I could not find a ready made function in PHP 5 to convert these into their equivalent UTF8 characters. So, below is what I came up with.

<pre>
<?php

$json = ''string returned from a google api call'' (["see here" http://code.google.com/apis/ajaxsearch/documentation/index.html#fonje_snippets_php])
$result = preg_replace_callback('/\\\\u~[0-9a-fA-F]{4}/','unescuni',$json);

function unescuni ($match) {
return unicode2utf8(hexdec(substr($match~[0],2)));
}

function unicode2utf8($c) {
if($c < 0x80) {
return chr($c);
}
else if($c < 0x800) {
return chr( 0xc0 | ($c >> 6) )
. chr( 0x80 | ($c & 0x3f) );
}
else if($c < 0x10000) {
return chr( 0xe0 | ($c >> 12) )
. chr( 0x80 | (($c >> 6) & 0x3f) )
. chr( 0x80 | ($c & 0x3f) );
}
else if($c < 0x200000) {
return chr(0xf0 | ($c >> 18))
. chr(0x80 | (($c >> 12) & 0x3f))
. chr(0x80 | (($c >> 6) & 0x3f))
. chr(0x80 | ($c & 0x3f));
}
return false;
}

?>
</pre>

----
<!-- Comments below here.
 

 
  ·  0.0407s