PHP. Вместо символа кириллицы печатается заменяющий символ �. Как исправить?
Нужно помнить, что в utf-8 каждый символ кириллицы занимает 2 байта, а не один. И использовать многобайтные функции для работы с текстом, например, mb_substr вместо substr
Нужно сообщить браузеру, в какой кодировке будет страница, при помощи http-заголовка:
header('Content-Type: text/html; charset=utf-8');
Так как присутствия
<meta charset="utf-8" />
 недостаточно, если браузер взаимодействует с php сервером.
PS:
// $lastSymmbol = substr($ar['surname'], -1);
Помните, что для utf-8, как для разновидности двухбайтовой кодировки, нужно использовать другой спектр функций mb_*, в данном случае mb_substr.
Но чтобы одни работали, нужно убедиться, что включено расширение mbstring в настройках php.