public static function supportedEncodings()
    {
        if (static::$supported_encodings === null) {
            $supported = mb_list_encodings();

            foreach ($supported as $key => $value) {
                static::$supported_encodings[strtolower($value)] = $value;

                foreach (mb_encoding_aliases($value) as $k => $v) {
                    static::$supported_encodings[strtolower($v)] = $value;
                }
            }
        }

        return static::$supported_encodings;
    }