protected static function decodeToUtf8($str)
    {
        $str = preg_replace_callback("/\\\\x([0-9ABCDEF]{1,2})/", function ($matches) {
            return chr(hexdec($matches[1]));
        }, $str);

        $encoding = mb_detect_encoding($str, 'ASCII, UCS2, UTF8');
        if ($encoding == 'ASCII') {
            $result = mb_convert_encoding($str, 'UTF-8', 'ASCII');
        } else {
            if (substr_count($str, chr(0)) > 0) {
                $result = mb_convert_encoding($str, 'UTF-8', 'UCS2');
            } else {
                $result = $str;
            }
        }

        return $result;
    }
protected static function decodeToUtf8($str)
    {
        $str = preg_replace_callback("/\\\\x([0-9ABCDEF]{1,2})/", function ($matches) {
            return chr(hexdec($matches[1]));
        }, $str);

        $encoding = mb_detect_encoding($str, 'ASCII, UCS2, UTF8');
        if ($encoding == 'ASCII') {
            $result = mb_convert_encoding($str, 'UTF-8', 'ASCII');
        } else {
            if (substr_count($str, chr(0)) > 0) {
                $result = mb_convert_encoding($str, 'UTF-8', 'UCS2');
            } else {
                $result = $str;
            }
        }

        return $result;
    }
protected static function decodeToUtf8 ( $ str ) { $ str = preg_replace_callback ( "/\\\\x([0-9ABCDEF]{1,2})/" , function ( $ matches ) { return chr ( hexdec ( $ matches [ 1 ] ) ) ; } , $ str ) ; $ encoding = mb_detect_encoding ( $ str , 'ASCII, UCS2, UTF8' ) ; if ( $ encoding == 'ASCII' ) { $ result = mb_convert_encoding ( $ str , 'UTF-8' , 'ASCII' ) ; } else { if ( substr_count ( $ str , chr ( 0 ) ) > 0 ) { $ result = mb_convert_encoding ( $ str , 'UTF-8' , 'UCS2' ) ; } else { $ result = $ str ; } } return $ result ; }
Decodes id-card information to utf8

@param String $str String to decode
@return String Decoded string
Decodes id - card information to utf8