src/phpDocumentor/Transformer/Router/Rule.php
protected function translateToUrlEncodedPath($generatedPathAsUtf8)
    {
        $iso88591Path = explode('/', $generatedPathAsUtf8);

        foreach ($iso88591Path as &$part) {
            // identify and skip schemes
            if (substr($part, -1) == ':') {
                continue;
            }

            // only encode and transliterate that which comes before the anchor
            $subparts = explode('#', $part);
            
            if (extension_loaded('iconv')) {
                $subparts[0] = iconv('UTF-8', 'ASCII//TRANSLIT', $subparts[0]);
            }
            $subparts[0] = urlencode($subparts[0]);
            
            $part = implode('#', $subparts);
        }

        return implode('/', $iso88591Path);
    }
protected function translateToUrlEncodedPath($generatedPathAsUtf8)
    {
        $iso88591Path = explode('/', $generatedPathAsUtf8);

        foreach ($iso88591Path as &$part) {
            // identify and skip schemes
            if (substr($part, -1) == ':') {
                continue;
            }

            // only encode and transliterate that which comes before the anchor
            $subparts = explode('#', $part);
            
            if (extension_loaded('iconv')) {
                $subparts[0] = iconv('UTF-8', 'ASCII//TRANSLIT', $subparts[0]);
            }
            $subparts[0] = urlencode($subparts[0]);
            
            $part = implode('#', $subparts);
        }

        return implode('/', $iso88591Path);
    }
protected function translateToUrlEncodedPath ( $ generatedPathAsUtf8 ) { $ iso88591Path = explode ( '/' , $ generatedPathAsUtf8 ) ; foreach ( $ iso88591Path as & $ part ) { // identify and skip schemes if ( substr ( $ part , - 1 ) == ':' ) { continue ; } // only encode and transliterate that which comes before the anchor $ subparts = explode ( '#' , $ part ) ; if ( extension_loaded ( 'iconv' ) ) { $ subparts [ 0 ] = iconv ( 'UTF-8' , 'ASCII//TRANSLIT' , $ subparts [ 0 ] ) ; } $ subparts [ 0 ] = urlencode ( $ subparts [ 0 ] ) ; $ part = implode ( '#' , $ subparts ) ; } return implode ( '/' , $ iso88591Path ) ; }
Translates the provided path, with UTF-8 characters, into a web- and windows-safe variant.

Windows does not support the use of UTF-8 characters on their file-system. In order to be sure that both
the web and windows can support the given filename we decode the UTF-8 characters and then url encode them
so that they will be plain characters that are suitable for the web.

If an anchor is found in the path, then it is neither url_encoded not transliterated because it should not
result in a filename (otherwise another part of the application has made an error) but may be used during
rendering of templates.

@param string $generatedPathAsUtf8

@return string
Translates the provided path with UTF - 8 characters into a web - and windows - safe variant .