Parece un caso de doble encoding. Lo mas probable es que el navegador este interpretando otro encoding. ¿Por que?
Pusiste el ejemplo de ó
El equivalente en UTF-8 es: C3 B3 (Hex)
Tu navegador interpreta: ó
Fija como tu navegador se interpreta los bytes por separado, ahora si te vas a ver el encoding ISO-8859 o Windows-1252:
C3 = Ã
B3 = ³
http://en.wikipedia.org/wiki/Windows-1252#Code_page_layout
Ahora, el header que envias deberia asegurarte que el navegador se lea el documento en UTF-8 mas no que lo presente en UTF-8. ¿Que Doctype estas usando? Asegurate de establecer el charset correctamente:
Si estas usando html5:
Pusiste el ejemplo de ó
El equivalente en UTF-8 es: C3 B3 (Hex)
Tu navegador interpreta: ó
Fija como tu navegador se interpreta los bytes por separado, ahora si te vas a ver el encoding ISO-8859 o Windows-1252:
C3 = Ã
B3 = ³
http://en.wikipedia.org/wiki/Windows-1252#Code_page_layout
Ahora, el header que envias deberia asegurarte que el navegador se lea el documento en UTF-8 mas no que lo presente en UTF-8. ¿Que Doctype estas usando? Asegurate de establecer el charset correctamente:
Si estas usando html5:
Código (html) [Seleccionar]
<meta charset="utf-8">