michaelfox + utf8 14
unicode decode — Gist
march 2011 by michaelfox
<?php
function uniDecode($str,$charcode){
$text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",'toUtf8',$str);
return mb_convert_encoding($text, $charcode, 'utf-8');
}
function toUtf8($ar){
$c = null;
foreach($ar as $val){
$val = intval(substr($val,2),16);
if($val < 0x7F){ // 0000-007F
$c .= chr($val);
}elseif($val < 0x800) { // 0080-0800
$c .= chr(0xC0 | ($val / 64));
$c .= chr(0x80 | ($val % 64));
}else{ // 0800-FFFF
$c .= chr(0xE0 | (($val / 64) / 64));
$c .= chr(0x80 | (($val / 64) % 64));
$c .= chr(0x80 | ($val % 64));
}
}
return $c;
}
php
utf8
unicode
charset
function uniDecode($str,$charcode){
$text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",'toUtf8',$str);
return mb_convert_encoding($text, $charcode, 'utf-8');
}
function toUtf8($ar){
$c = null;
foreach($ar as $val){
$val = intval(substr($val,2),16);
if($val < 0x7F){ // 0000-007F
$c .= chr($val);
}elseif($val < 0x800) { // 0080-0800
$c .= chr(0xC0 | ($val / 64));
$c .= chr(0x80 | ($val % 64));
}else{ // 0800-FFFF
$c .= chr(0xE0 | (($val / 64) / 64));
$c .= chr(0x80 | (($val / 64) % 64));
$c .= chr(0x80 | ($val % 64));
}
}
return $c;
}
march 2011 by michaelfox
related tags
*todo ⊕ admin ⊕ apache ⊕ ascii ⊕ character ⊕ characters ⊕ characterset ⊕ charactersets ⊕ charcodes ⊕ charset ⊕ chart ⊕ clean ⊕ codeigniter ⊕ config ⊕ devops ⊕ encoding ⊕ etc ⊕ formatting ⊕ headers ⊕ htaccess ⊕ html ⊕ mbstring ⊕ mysql ⊕ php ⊕ reference ⊕ regex ⊕ search ⊕ seo ⊕ server ⊕ slug ⊕ symbols ⊕ text ⊕ title ⊕ tools ⊕ unicode ⊕ url ⊕ utf-8 ⊕ utf8 ⊖ webdev ⊕Copy this bookmark: