El problema es que primero tienes que pasar tu htmlspecialchars() y luego el nl2br()
Si lo haces como lo estás haciendo (en el orden que usas) .. primero se ejecuta tu nl2br() --> convierte los \n en <br> ..y luego viene tu htmlspecialchars() y convierte los < en &nose y los > en su HTML equivalente ...
Tendrias que hacerlo en este orden:
Código PHP:
$descr = htmlspecialchars(nl2br($row[descr]));
Y si te dá problemas así .. usa:
Código PHP:
$descr = htmlspecialchars($row[descr]);
$descr = nl2br($descr);
Un saludo,