Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/01/2013, 07:12
Avatar de maycolalvarez
maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Cambiar a código UTF-8 un sitio web

bienvenido al foro, te invito a que consultes las políticas del foro

volviendo al tema, ten en cuenta que para implementar una codificación, son muchos los elementos que entran en juego, no creo necesario que añadas la cabecera (header) en php y el error que te dio te lo explico al final.

a ver, elementos a tener en cuenta para una correcta implementación de UTF8:

1 - Base de datos: de nada sirve implementar UTF8 si la base de datos no está en UTF8, y si no se puede cambiar (no es fácil y sobre todo cuando se necesita una codificación insensible a mayúsculas), lo ideal es tener una capa intermedia (como DBAL) que se encargue de convertir de UTF8 a la codificación de la DB y viceversa, dentro de las más rudimentarias es aplicar utf8_encode/utf8_decode, SQL SET NAMES en MySQL, y librerías como iconv o multibyte.

2 - Archivos, lo IDEAL es que todos los archivos estén codificados en UTF8 sin BOM, editores como NotePad++ te pueden ayudar a verificarlo y convertirlos, por defecto NetBeans usa está codificación pero no he investigado si la puede cambiar o reconvertir archivos, DreamWeaver similar.

3 - El META en el HTML: muy importante ya que le indica al navegador con qué se va a trabajar

4 - El WebServer: por defecto, WS como apache disponen de todas las codificaciones (charset) posibles, pero aveces en instalaciones manuales hay que especificarlas, aunque es un caso poco común, solo me pasó en mi primera instalación de apache desde 0


Con todo lo anterior se puede lograr una buena adaptación de UTF8, el error de php te aparece debido a que llamas al header cuando ya ha salido data o texto al stdout, por lo cual puede indicar que tengas texto antes, echo's o el simple DOCTYPE, header debe ser llamado antes, pero como te indique, no es realmente necesario establecer la codificación por header porque se supone que de eso de encarga el web server, se usaría para en casos que necesites exportar data en una codificación especifica.

espero haber aclarado tus dudas, cualquier otra responde por éste mismo hilo, saludos.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...