src/Zip.php
protected function cpToUtf8($string)
    {
        if (function_exists('iconv') && @iconv_strlen('', 'CP437') !== false) {
            return iconv('CP437', 'UTF-8', $string);
        } elseif (function_exists('mb_convert_encoding')) {
            return mb_convert_encoding($string, 'UTF-8', 'CP850');
        } else {
            return $string;
        }
    }
protected function cpToUtf8($string)
    {
        if (function_exists('iconv') && @iconv_strlen('', 'CP437') !== false) {
            return iconv('CP437', 'UTF-8', $string);
        } elseif (function_exists('mb_convert_encoding')) {
            return mb_convert_encoding($string, 'UTF-8', 'CP850');
        } else {
            return $string;
        }
    }
protected function cpToUtf8 ( $ string ) { if ( function_exists ( 'iconv' ) && @ iconv_strlen ( '' , 'CP437' ) !== false ) { return iconv ( 'CP437' , 'UTF-8' , $ string ) ; } elseif ( function_exists ( 'mb_convert_encoding' ) ) { return mb_convert_encoding ( $ string , 'UTF-8' , 'CP850' ) ; } else { return $ string ; } }
Convert the given CP437 encoded string to UTF-8

Tries iconv with the correct encoding first, falls back to mbstring with CP850 which is
similar enough. CP437 seems not to be available in mbstring. Lastly falls back to keeping the
string as is, which is still better than nothing.

On some systems iconv is available, but the codepage is not. We also check for that.

@param $string
@return string
Convert the given CP437 encoded string to UTF - 8