Просто для пояснения ... UTF-8 - это схема кодировки символов, которая охватывает все символы Юникода. Поэтому не существует такой вещи, как «не UTF-8 символ».
Кодировка строки не имеет ничего общего с графическим представлением этих символов на экране (например, в элементах или веб-страницы). В вашем примере некоторые шрифты отображают кавычки типографа как прямые кавычки, в то время как другие отображают тот же символ UTF-8, что и кавычки.
Параметр ResponseEncoding определяет, какие байты передаются для представления символов, составляющих HTML-код вашей страницы, и символов, закодированных в сообщениях формы и URL-адресах, на вашу страницу. Общими кодировками являются UTF-8, ISO 8859-1 и windows-1252. Эти кодировки имеют много общего, но они также имеют свои различия. Тем не менее, вы можете доставить ту же самую страницу, используя набор символов и кодировку windows-1252 (который также включает в себя эти фигурные кавычки), и вы увидите точно такой же результат.
Итак, в двух словах, не путайте кодировку символов со стилями шрифтов.
Кстати, ваша директива ResponseEncoding = "utf-8" является избыточной, поскольку в web.config установлено то же самое. В любом случае UTF-8 используется по умолчанию, поэтому он может даже не понадобиться в вашем файле web.config.