veamoslo en una forma más técnica. cuando se indica una encodificación en META, el navegador usa un decodificador segun el charset. cada decodificación tiene un algoritmo diferente para mostrar el contenido pero a la misma vez ese contenido debe estar encodificado correctamente. si vemos ese contenido en un editor hexadecimal, verás que cada método de encodificación se diferencian entre si. por ejemplo,
Código:
caracter latín hex utf-8 hex iso-8859-1
ñ C3 B1 F1
Ñ C3 91 D1
á C3 A1 E1
é C3 A9 E9
í C3 AD 3D
ó C3 B3 F3
ú C3 BA FA
Á C3 81 C1
É C3 89 C9
Í C3 8D CD
Ó C3 93 D3
Ú C3 9A DA
en la tabla, fíjate que el valor binario de cada caracter cambia según la encodificación. la
ñ en utf-8 se representa como
C3 B1 pero en iso-8859-1 tiene valor
F1. en tu caso, le estas indicando al navegador que el contenido esta encodificado en utf-8 pero puede ser que el contenido internamente este encodificado como representa la columna
hex iso-8859-1. de ahí es que salen los caracteres raros que tanto hablamos.
para corregirlo, tienes que verificar si tu editor web puede guardar el contenido en la encodificación correcta, y no me refiero a que el dreamweaver (en este caso) incluya el META correcto. sino que por alguna parte de dreamweaver, supongo cuando guardas el documento, debe tener las opciones de la encodificación a usar. si dreamweaver no lo tiene, que me extrañaria que no lo tenga, entonces necesitas otro editor que te pueda almacenar en uft-8. en cuanto a la parte php sucede más o menos igual, el contenido debe ser servido en la misma encodificación.