protected static function encodeUserInfo(string $userInfo): string
    {
        // http://tools.ietf.org/html/rfc3986#section-3.2.1
        // userinfo = *( unreserved / pct-encoded / sub-delims / ":" )
        $excluded = static::UNRESERVED_SET.static::SUB_DELIMS_SET.':';

        return static::encode($userInfo, $excluded);
    }