Primero con el formulario html.
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
En todo Archivo HTML que tengamos, siempre es bueno indicar al servidor que el contenido de la página es código HTML y su codificación de caracteres es UTF-8:
No se si es importante, pero por si las dudas en bueno agregarlo. Funciona y me seguirá funcionando.
Ahora en la conexión que tengamos hacia nuestra base de datos, es importante agregarle lo siguiente.
mysql_query ("SET NAMES 'utf8'");
Tanto en los archivos PHP en los que haces la conexión a la base datos y lo guardas la información de formulario, como tambien cuando quieras mostrar algo que este guardado en una base datos SQL y que tengas eÑes y tildes por todas partes...
Podre un ejemplo de como se vería mas o menos un archivo.
<?php
require_once('funciones.php'); //La conexion a la base de puede ser distinta a la que tu tengas, pero esto solo es un ejemplo.
conectar('localhost', 'root', '', 'contraseña');
mysql_query ("SET NAMES 'utf8'");
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cabecera de HTML básico</title>
<link rel="stylesheet" href="css/estilo.css">
</head>
<body>
En realidad no es gran cosa, pero siempre he tenido este tipo de problemas a la hora de jugar con PHP y SQL y las eÑes, las tildes, los caracteres especiales entre cosas....
Espero que les funcione a ustedes tambien.

SOCIALIZALO →