src/Peach/DF/Utf8Codec.php
public function decode($text)
    {
        $bom = chr(0xEF) . chr(0xBB) . chr(0xBF);
        if (Strings::startsWith($text, $bom)) {
            return $this->decode(substr($text, 3));
        }
        
        $context = new Utf8Context($text);
        $result  = array();
        while ($context->hasNext()) {
            $result[] = $context->next();
        }
        
        // 文字列の末尾に不正な文字が存在していた場合,
        // $result の最後の要素に null が代入されるので取り除く
        $count = count($result);
        if ($count && $result[$count - 1] === null) {
            array_pop($result);
        }
        return $result;
    }
public function decode($text)
    {
        $bom = chr(0xEF) . chr(0xBB) . chr(0xBF);
        if (Strings::startsWith($text, $bom)) {
            return $this->decode(substr($text, 3));
        }
        
        $context = new Utf8Context($text);
        $result  = array();
        while ($context->hasNext()) {
            $result[] = $context->next();
        }
        
        // 文字列の末尾に不正な文字が存在していた場合,
        // $result の最後の要素に null が代入されるので取り除く
        $count = count($result);
        if ($count && $result[$count - 1] === null) {
            array_pop($result);
        }
        return $result;
    }
指定された UTF-8 の文字列を Unicode 符号点の配列に変換します.

@param  string $text UTF-8 でエンコードされた文字列
@return array        Unicode 符号点の配列