Me suena que guardas tus ficheros (los script PHP) en el formato ANSI y deberias hacerlo en UTF8 ( mejor UTF8 sin BOOM)
Esto depende del editor que usas. En mi caso en NOTEPAD++ hay una opcion en Setting -> Preferences -> New document -> Encoding -> UTF8 without BOOM
Para entender mejor haz este experimento con el notepad de windows copia y pega en el notepad el siguiente codigo:
Código HTML:
Ver original<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
á é í ó úÑ
Aunque te van a salir caracteros raros guardalo como :
Nombre = prueba_ansi.html
Tipo = Todos los archivos
Codificacion = ANSI
luego guardalo otra vez como :
Nombre = prueba_utf8.html
Tipo = Todos los archivos
Codificacion = UTF8
Abre los ficheros html con el navegador y verras la diferencia