This is well know issue but for some reason it is not resolved since 2013
https://core.trac.wordpress.org/ticket/22363
You can always sanitized filename by yourself using sanitize_file_name
filter.
/**
* Sanitize filename to not brake links with UTF-8 characters
*
* WordPress allow to upload files with names containing UTF-8 characters. Some
* browsers do not handle properly UTF-8 characters in url which causes 404 errors.
* This filter will remove UTF-8 characters from filename before saving it.
*
* @see https://core.trac.wordpress.org/ticket/22363 Bug request
*
* @param string $filename Filename
*
* @return string Sanitized filename
*/
function sanitize_filename( $filename ) {
$file_parts = explode( '.', $filename );
$extension = array_pop( $file_parts );
$filename = sanitize_title( preg_replace( '/[^A-Za-z0-9\-]/', '', join( '.', $file_parts ) ) );
return sprintf('%s.%s', $filename, $extension);
}
add_filter( 'sanitize_file_name', 'sanitize_filename' );