Краткий ответ: Ваша операционная система может поддерживать такие имена файлов, но это не так.
Для вас не существует простого способа сделать что-то простое, например &
. Вы можете сохранить реальное имя файла или создать таблицу преобразования таким образом, чтобы что-то вроде _____questionmark_____
конвертировалось в этот символ или что-то глупое, но тогда вы столкнулись с проблемами с этой конкретной строкой.
По сути, вы должны хранить заголовок отдельно от самого файла. База данных будет подходящим местом.
На более глубоком уровне, если вы задаете такой вопрос, я думаю, что можно с уверенностью сказать, что разрешение пользователям указывать имена файлов в вашей системе, вероятно, представляет большую угрозу безопасности.