Search code examples
phpunicodeutf-8codepoint

How to Convert string to utf-8 codepoint in php


I want to convert a string like:

alnassre 
will be 0061006c006e00610073007300720065
عربي
will be 063906310628064a
a
will be 0061

using PHP

as what is going in the link http://www.bareedsms.com/tools/UniCodeConverter.aspx


Solution

  • I found the answer but it return array here

    I Edit the function to return String.

    function utf8_to_unicode($str) {
    
        $unicode = array();        
        $values = array();
        $lookingFor = 1;
    
        for ($i = 0; $i < strlen($str); $i++) {
    
            $thisValue = ord($str[$i]);
    
            if ($thisValue < 128) 
                $unicode[] = str_pad(dechex($thisValue), 4, "0", STR_PAD_LEFT);
            else {
                if (count($values) == 0) $lookingFor = ($thisValue < 224) ? 2 : 3;                
                $values[] = $thisValue;                
                if (count($values) == $lookingFor) {
                    $number = ($lookingFor == 3) ?
                    (($values[0] % 16) * 4096) + (($values[1] % 64) * 64) + ($values[2] % 64):
                    (($values[0] % 32) * 64) + ($values[1] % 64);
                    $number = strtoupper(dechex($number));
                    $unicode[] = str_pad($number, 4, "0", STR_PAD_LEFT);
                    $values = array();
                    $lookingFor = 1;
                } // if
            } // if
        } // for
        $str="";
        foreach ($unicode as $key => $value) {
            $str .= $value;
        }
    
    
        return ($str);   
    } // utf8_to_unicode