ZF escapes labels by default. This is a good thing. It's not that Zend Form "doesn't consider ü
a character", it's that you are supply an already escaped string so the escaping is happening twice. (View source and you'll see ü
.)
You can either run the data you're reading in from the file through html_entity_decode()
(preferred), or disabling escaping on the submit element's label decorator:
$form->submit->getDecorator('label')->setOption('escape', false);