ZF-5859: Zend_Validate_Hostname: ç in .com domains

Description

Zend_Validate_Hostname seems to validate Domains with ç wrong. ç should be an allowed character. This also works fine for .de Domains but fails with .com Domains.

Example: {{ $v = new Zend_Validate_Hostname(); $v->isValid('testçdomain.com') // false, should be true $v->isValid('testçdomain.de') // true }}

Comments

There's no list of UTF-8 characters allowed in .com domains like there's one for .de domains.

The Quickfix for the ç would be to create a file /Zend/Validate/Hostname/Com.php:

<?php

require_once 'Zend/Validate/Hostname/Interface.php';

/**
 * Patch for .com IDN-Domains
 * @author SK
 */
class Zend_Validate_Hostname_Com implements Zend_Validate_Hostname_Interface
{
    /**
     * Add ç to the list of allowed characters
     *
     * @return string
     */
    static function getCharacters()
    {
        return  '\x{00E7}';
    }
}

There's a complete list of allowed character in .com domains at http://de.wikipedia.org/wiki/…

Also this may not be authoritative:

{{à á â ã ä å ā ă ą æ ç ć ĉ ċ č ď đ è é ê ë ē ĕ ė ę ě ŋ ð ĝ ğ ġ ģ ĥ ħ ì í î ï ĩ ī ĭ į ı ĵ ķ ĸ ĺ ļ ľ ł ñ ń ņ ň ò ó ô õ ö ø ō ŏ ő œ ŕ ŗ ř ś ŝ ş š ţ ť ŧ þ ù ú û ü ũ ū ŭ ů ű ų ŵ ý ÿ ŷ ź ż ž}}

New feature implemented with r14532