I want to get a list of cities in which the name of each city is indicated, and links to a page for this city:

The links (created in the script view) are as follows:
http://project.loc/catalog/Berlin (in the HTML source code url-encoded: Berlin) http://project.loc/catalog/Erlangen (in the HTML source code url-encoded: Erlangen) http://project.loc/catalog/Nürnberg (in the HTML source code url-encoded: N%C3%BCrnberg)
"Berlin", "Erlangen", etc., but if the city name contains a German special character ( ä , ö , ü , Ä , Ö , Ü , or ß ), like "Nuremberg", error 404 occurs:
Error 404 Page not found. The requested URL cannot be matched by routing. There are no exceptions.
Why? And how to do it?
Thanks in advance!
EDIT:
My router settings:
'router' => array( 'routes' => array( 'catalog' => array( 'type' => 'literal', 'options' => array( 'route' => '/catalog', 'defaults' => array( 'controller' => 'Catalog\Controller\Catalog', 'action' => 'list-cities', ), ), 'may_terminate' => true, 'child_routes' => array( 'city' => array( 'type' => 'segment', 'options' => array( 'route' => '/:city', 'constraints' => array( 'city' => '[a-zA-ZäöüÄÖÜß0-9_-]*', ), 'defaults' => array( 'controller' => 'Catalog\Controller\Catalog', 'action' => 'list-sports', ), ), 'may_terminate' => true, 'child_routes' => array(